const regex = /^@import\s+(?:url\(['"]?.*?['"]?\)|['"].*?['"])(\s+[^;]+?)?;$/gim;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^@import\\s+(?:url\\([\'"]?.*?[\'"]?\\)|[\'"].*?[\'"])(\\s+[^;]+?)?;$', 'gim')
const str = `@import url(https://clearvision.github.io/ClearVision-v6/main.css) asd;
@import url("https://clearvision.github.io/ClearVision-v6/main.css") asd;
@import 'https://clearvision.github.io/ClearVision-v6/main.css' asd;
@import url("landscape.css") screen and (orientation: landscape);
@import "landscape.css" screen and (orientation: landscape);
@import url("flexy.css") supports(not (display: grid) and (display: flex)) screen
and (max-width: 400px);`;
// 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