以下是要匹配的示例字符串列表:
这些应该匹配:
hello.js test.hello.js test.js.js test.js.hello.js test.js.test.js.test.js.dss.js test.js.dss.js test.js.js.js.js.dummy.js
这些不应匹配:
fun.css test.js fun.test.js test.test.js test.js.test.js hell.cs test.test.js
最佳答案
一个简单的选择是使用否定前瞻来检查该行是否以 .test.js
结尾:
^(?!.*\.test\.js$).*\.js$
这个不包括 test.js
,这是一种特殊情况,但您可以使用 ^(?!(?:^|.*\.)test\. js$).*\.js$
来绕过它(或其他类似的选项)。
工作示例:http://www.rubular.com/r/UVvRZMcnjl
如果您的风格支持lookbehinds(JavaScript和旧的Ruby不支持,但Ruby 1.9.2支持),您可以使用:
^.*(?<!^test|\.test)\.js$
关于ruby - 匹配不以 test.js 结尾但以 .js 结尾的文件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757406/