我试图用这个表达式解析 CSS 文件:
rulePatt = new RegExp("(?<=\\s)(?<!\\:\\s)#.*?\\{.*?\\}","gm");
它在我使用的两个不同的正则表达式测试器中工作,但是当我把它放在野外时它会生成 javascript 错误:
Uncaught SyntaxError: Invalid regular expression: /(?<=\s)(?<!\:\s)#.*?\{.*?\}/: Invalid group
在此处摆弄以形成对我要实现的目标的印象:http://jsfiddle.net/LoomyBear/44XtU/1/
我想我错过了一些非常重要的东西。 请帮忙 ... 谢谢!
最佳答案
你可以使用这个模式
var regex = /(?:^|[^:])\s(#[^{]*\{[^}]*\})/gm;
您的结果在第一个捕获组中。
解释:
(?:^|[^:]) # begining of the line or a character that is not a :
\s # a white space
(#
[^{]* # all characters expect { zero or more times
\{
[^}]* # all characters expect } zero or more times
\})
第一个回顾 (?<=\s)
在升号前加一个空格,这就是我之前写\s 的原因。
第二回看(?<!:\s)
禁止 :
在这个空格之前,因此,在这个位置只允许没有任何内容(即:行的开头)或不是 :
的字符。
关于javascript - 无效的正则表达式`Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618645/