我希望排除包含特定单词或短语的匹配。例如,我如何才能只匹配第1行和第3行?\b
单词边界并不像我预期的那样直观地工作。
foo.js # match
foo_test.js # do not match
foo.ts # match
fun_tset.js # match
fun_tset_test.ts # do not match
更新
我想排除的是在扩展名前显式以_test
结尾的字符串。起初,我有类似于[^_test]
的东西,但这也排除了这些字符的任何组合(如第3行)。
发布于 2018-10-07 01:13:42
正则表达式:^(?!.*_test\.).*$
工作示例:https://regex101.com/r/HdGom7/1
工作原理:使用负向先行检查_test.
是否存在于字符串中的某个位置,如果存在,则不匹配。
发布于 2021-02-15 03:28:22
再加上@椒盐锤的答案,看起来你想要抓取文件名以ts或js结尾的字符串:
^(?!.*_test)(.*\.[jt]s)
第一个括号中的表达式是一个负前视,它排除了所有带有_test
的字符串,第二个括号匹配任何以句点结尾的字符串,后跟[jt]
(j或t),最后是s
。
https://stackoverflow.com/questions/52678585
复制相似问题