我有以下两个文件:
test_ExampleSchemeConfig
test_ExampleSchemeConfig.cpp
,并且我想使用以下正则表达式将两者分开。我想要
过滤掉test_ExampleSchemeConfig
,以下表达式不起作用:
test_.*(?!(\.(cpp|hpp)))$
我想知道如何解决?
我相信我的问题的答案应该在某个地方,但是我找不到运气。
非常感谢!
答案 0 :(得分:1)
您可以考虑使用以下正则表达式之一:
^test_[^.]*$
它将匹配以test_
开头的字符串,然后具有.
以外的任何0+字符。参见regex demo。
或者,您可以使用
^test_.*$(?<!\.[ch]pp)
它将匹配任何以test_
开头,然后有0+个字符,但不以.cpp
或.hpp
结尾的字符串。参见regex demo。
如果您的正则表达式引擎不支持向后搜索,请使用与前瞻相同的模式:
^test_(?!.*\.[ch]pp$).*$
此正则表达式与test_
匹配,然后确保除换行符外没有其他0+个字符,后跟.
,c
或h
然后是{{1 }}放在字符串的末尾,然后抓住整行。参见regex demo。