Javascript 所有情况下@import css标记的正则表达式
**各位好,, 我正在做一些网页源代码的工作。我需要用于导入.css文件的所有可能语法的正则表达式。比如说-Javascript 所有情况下@import css标记的正则表达式,javascript,css,regex,Javascript,Css,Regex,**各位好,, 我正在做一些网页源代码的工作。我需要用于导入.css文件的所有可能语法的正则表达式。比如说- 1.@import url("a.css"); 2.@import url('a.css'); 3.@import url ("a.css"); 4.@import url ('a.css'); 5.@import "a.css"; 6.@import 'a.css'; etc. 我希望所有情况下都使用一个正则表达式。请帮助。**我将使用以下方法: @import.*?["']([
1.@import url("a.css");
2.@import url('a.css');
3.@import url ("a.css");
4.@import url ('a.css');
5.@import "a.css";
6.@import 'a.css'; etc.
我希望所有情况下都使用一个正则表达式。请帮助。**我将使用以下方法:
@import.*?["']([^"']+)["'].*?;
@import.*?[“]
匹配行的开头,直到打开引号或双引号。([^”]+)
匹配引号或双引号(url)之前的所有内容,并对其进行分组。[“'].*?;
与行尾匹配
如上所示。这是未经测试的:
/^@import\s(url\s?\((["'])(.*?)\2|(["']).*?\4);
答案将在\4中
但也许仅仅匹配^@import
就足够了?您需要提取文件名吗?如下所示:
const re=/(?:@import)\s(?:url\()?\s?[“\”](.*?[“\”]\s?\)(?:[^;]*);?/gi;
const s='@import-url(“fineprint.css”)打印;@import-url(“bluish.css”)投影,电视;@import-custom.css\';@import-url('chrome://communicator/skin/);@import“common.css”屏幕,投影;@import url(\'scarland.css\')屏幕和(方向:横向);';
s、 替换(re,(match,g1)=>console.log(match,g1));
我想改进已接受的正则表达式:
@import.*?["']?([^"']+?)["']?.*?;
你能告诉我们到目前为止你尝试了什么吗?你可以试着为每一行写一个正则表达式,然后用“|”来尝试所有的正则表达式,就像(r1 | r2 | r3)一样。是的,我尝试了很多正则表达式,但没有任何一个能给我我我想要的输出。我的一些表达式是url\(\”()\(url\)(url\)(url\)|@import'(.*)(124; import\(*)(.*))\“@import\\s+(url\(\\\((css)\)?\\s*(\“\”)(.+)\\s*(\“\”)(\)”,但它没有考虑ech,而且您的模式也没有给出答案。我已经试过了上面提到的每一根绳子。由于它不包括空间条件,您称之为“空间条件”是什么?你咨询过我的链接吗?你知道否定类吗?对不起,先生,我错了。这种模式正在发挥作用。我在文件中提取了一些字符串,它正在工作。但我不知道为什么它不适用于代码中的字符串。另外,我刚刚看到你对另一个答案的评论。您不认为指定您需要对url进行分组以替换您的问题很重要吗?是的,我需要提取文件名并更改其路径。
/@import[^u\"\']+(url[^\(]*\()?(|'|\")(\"|\')([^\"\']+)\.css/gi