使用std ::正则表达式,并给予文件路径,我想只匹配结束的文件名.txt和不是形式_test.txt或.txtTEMP.任何其他下划线都没问题.
所以,例如:
somepath/testFile.txt 应该匹配.somepath/test_File.txt 应该匹配.somepath/testFile_test.txt 不应该匹配.somepath/testFile.txtTEMP 不应该匹配.这种模式的正确正则表达式是什么?
我尝试过的:
(.*?)(\.txt)--->匹配任何以.txt.结尾的文件路径.
要排除包含_test我尝试使用否定外观的文件:
(.*?)(?!_test)(\.txt)
但它没有用.
我也试过负面的lookbehind,但MSVC14(Visual Studio 2015)std::regex_error在创建正则表达式时抛出一个异常,所以我不确定它是否不受支持或者我使用了错误的语法.
根据您发布的内容,使用此模式
^(?!.*_).*\.txt$
Run Code Online (Sandbox Code Playgroud)
或者这个基于OP编辑的模式
^(.*(?<!_test)\.txt$)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1754 次 |
| 最近记录: |