正则表达式捕获不包含字符串并以扩展名结尾的文本

时间:2018-01-30 14:48:57

标签: regex webpack

我正在尝试使用2个正则表达式,一个包含'critrical'的字符串,以'(s)css'结尾,第二个字符串不包含'critical'(具有相同的扩展规则)。< / p>

我已经拥有了第一个,它是/.*?critical.*\.s?css$/

但我无法成为第二个。我认为它会像/.*?(?<!\.critical).*\.s?css$/一样简单。但是,似乎并不容易,因为它不起作用......

1 个答案:

答案 0 :(得分:2)

试试这个正则表达式(对于不包含关键词并且最后包含css的字符串):

^(?!.*critical).*s?css$

Click for Demo

<强>解释

  • ^ - 断言字符串的开头
  • (?!.*critical) - 否定前瞻,以验证字符串中不存在单词critical
  • .* - 匹配除新行之外的任何字符的0次出现(贪婪)
  • s?css - 匹配可选的s,后跟css
  • $ - 断言字符串的结尾

并且,对于包含关键词并且最后包含css的字符串,您可以尝试:

^(?=.*critical).*s?css$

Click for Demo

与此正则表达式的唯一区别在于它使用正向前瞻来确保字符串critical存在于字符串中的某处。