我需要创建一个javascript正则表达式来捕获css选择器。
下面是一些示例:
*, ::before, ::after // do not capture anything
::before // do not capture anything
.class1, .class2:before,.class3::after // capture .class2 and .class3
.class4::before // capture .class4
.class-5::before // capture .class-5
.class__6::after // capture .class__6
.class--7 > .child::after // capture .class--7 > .child
#id1 + .something:after // capture #id1 + .something
#id2[attribute-one="1"] + .class8:before // capture #id2[attribute-one="1"] + .class8
这是我目前的情况:/([.#\-+~>\[\]\"\'=\w ]+)(?=:?:)/g
.这是不理想的,因为我基本上必须白名单特殊的字符。
相反,我宁愿做这样的事情:
忽略独白空间的奖励点数,所以
*, ::before
不会捕获逗号后面的空格。
注意:这本质上是这个https://stackoverflow.com/questions/25918914/capture-word-before-a-specific-character的一个更复杂的版本
发布于 2014-09-18 20:46:52
您可以使用这个regex:
(?:^|,)([^:,\n]+):
和抓取捕获的组#1为您的匹配。
RegEx演示
发布于 2014-09-18 20:25:26
(?!,\s*:),([^,:]+):|^(?!\s*:)([^,:]+):
尝试this.It提供所有的matches.See演示。
http://regex101.com/r/pD5sV6/1
https://stackoverflow.com/questions/25921559
复制相似问题