我正在尝试使用2个正则表达式,一个包含'critrical'的字符串,以'(s)css'结尾,第二个字符串不包含'critical'(具有相同的扩展规则)。< / p>
我已经拥有了第一个,它是/.*?critical.*\.s?css$/
但我无法成为第二个。我认为它会像/.*?(?<!\.critical).*\.s?css$/
一样简单。但是,似乎并不容易,因为它不起作用......
答案 0 :(得分:2)
试试这个正则表达式(对于不包含关键词并且最后包含css的字符串):
^(?!.*critical).*s?css$
<强>解释强>
^
- 断言字符串的开头(?!.*critical)
- 否定前瞻,以验证字符串中不存在单词critical
.*
- 匹配除新行之外的任何字符的0次出现(贪婪)s?css
- 匹配可选的s
,后跟css
$
- 断言字符串的结尾并且,对于包含关键词并且最后包含css的字符串,您可以尝试:
^(?=.*critical).*s?css$
与此正则表达式的唯一区别在于它使用正向前瞻来确保字符串critical
存在于字符串中的某处。