[英]RegEx don't match if starts with character?
我有这个正则表达式:
/(((\\w+)|(\\.\\w+)|(\\#\\w+)|\\*)(\\[(.+(=".+"|\\*".+"|\\^".+"|))\\])?(::|:)?)+(?=[ \\S]*\\{)/gm
我试图用来匹配CSS选择器。 考虑这个伪代码CSS输入:
.main {
property: value;
}
.one, .two a[href$=".com"] {
.subclass {
property: value;
}
}
.test:before, .test:after:active {}
上面的模式将返回以下匹配:
['.body', '.one', '.two', 'a[href$=".com"]', '.subclass', '.test:before', '.test:after:active']
我试图修改模式,以便psuedo选择器不匹配。 所以所有其他匹配应该仍然有效,但.test:before
应该只是.test
和.test:after:active
也应该匹配.test
。 如果没有负面的后视,或者如果第一个角色是一个不匹配的方式,我想不出这样做的方法:
。
我在Node中实现这个,我不想将我的脚本锁定到Node> 9.2.0只是为了在我的正则表达式中使用负面的后台。
任何想法将不胜感激!
(?!.*:)(?:[.#]\\w+|\\w+\\[.*\\])
你可以用这样的东西吗?
这使用负前瞻来确保它不会捕获旁边有冒号的任何内容,以及为psuedo css元素使用匹配器的简化版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.