C#中的正则表达式包含"this"而不是"that"

Nic*_*aro 1 c# regex regex-negation

我需要过滤文件列表.其中一些是csv文件,其中一些附加了控制标记".cntl".

示例:file1.csv,file1.csv.cntl

我想设置一个正则表达式,检查文件是否包含"csv"而不是"cntl".现在我有了这个.

csv(?!cntl)
Run Code Online (Sandbox Code Playgroud)

这不起作用.正确的正则表达式是什么?

PS.这一切都是在C#中完成的.

Sea*_*ard 9

您的正则表达式应检查文件是否以 .csv

\.csv$
Run Code Online (Sandbox Code Playgroud)

请记住,csv它可以包含在文件名的其他位置.


jjn*_*guy 7

以下是您想要的模式.

@"csv(?!\.cntl)"
Run Code Online (Sandbox Code Playgroud)

但是,检查不是更容易:

if (string.EndsWith("cntl"))
Run Code Online (Sandbox Code Playgroud)

使用正则表达式是不必要的复杂.