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

时间:2010-12-09 20:28:59

标签: c# regex regex-negation

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

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

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

csv(?!cntl)

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

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

3 个答案:

答案 0 :(得分:9)

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

结尾
\.csv$

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

答案 1 :(得分:7)

以下是您想要的模式。

@"csv(?!\.cntl)"

但是,检查不是更容易:

if (string.EndsWith("cntl"))

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

答案 2 :(得分:0)

这应该有效:

csv(?!.*cntl)