const regex = /^(?!.*@media)[\t ]*([a-zA-Z#.:*[][^{\/]*\s*){[\s\S]*?}/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(?!.*@media)[\\t ]*([a-zA-Z#.:*[][^{\\\/]*\\s*){[\\s\\S]*?}', 'gm')
const str = `a {color: red !important;}
#p1 {
margin-top: 20px !important
}
/* Client-specific styles */
.ExternalClass,
.ExternalClass p,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div {
line-height: 100%;
}
a {}
@media query {
a {
display:none
}
}
a
{ display:none }
}
/* Media query for mobile viewport
#asset_container * Developer: hero graphics should be 2 x width for HD rendering.
*/
@media only screen and (max-width: 480px){
table[class=max-width-pad] {
max-width: 100% !important;
width: 100% !important;
padding-top: 15px !important;
height: auto !important;
}
#asset_container table[class=max-width]{
max-width: 100% !important;
width: 100% !important;
height: auto !important;
}
#asset_container table[class=container]{
margin: 0 auto !important;
}
#asset_container .desktop-masthead{
display: none !important;
}
#asset_container *[class].hidden. *[class=desktop-masthead]{
display: none !important;
}
#asset_container *[class].elastic{
width: 100% !important;
height: auto !important;
}
#asset_container *[class].centered{
text-align: center !important;
}
#asset_container *[class].fluid, #asset_container [class=fluid-mob]{
width: 100% !important;
}
[class=fluid-mob] {
#asset_container position: relative;
}
.mobile-show{
display: table-cell !important;
width: auto !important;
height: auto !important;
max-height: none !important;
overflow: visible !important;
visibility: visible !important;
position: relative !important;
text-align: center !important;
}
#asset_container .show-mob{
display: block !important;
max-height: none !important;
width: auto !important;
visibility: visible !important;
}
#asset_container *[class].mob-masthead{
width: 100% !important;
display: block !important;
height: auto !important;
max-height: none !important;
padding: 0 !important;
}
#asset_container *[class].mob-masthead-img{
position: absolute !important;
top: 0px !important;
display: block !important;
height: auto !important;
max-height: none !important;
padding: 0 !important;
width: auto !important;
}
[class=fluid-mob] {
display: table-cell !important;
width: auto !important;
height: auto !important;
max-height: none !important;
overflow: visible !important;
visibility: visible !important;
position: relative !important;
text-align: center !important;
}
}
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions