用于查找文件名的正则表达式

时间:2017-12-20 21:09:48

标签: c# regex

我正在尝试创建正则表达式以匹配以下情况:

myFile.txtmyFile(1).txt

但与此相符:

myFile WithSimilarName.txt

这是我的尝试:

@"({fileName}\(d+\)\.txt)|({fileName}.txt)"

1 个答案:

答案 0 :(得分:2)

您希望匹配具有fileName的文件名,然后匹配以.txt结尾的括号内的可选数字序列。

您的图案可以通过以下方式形成:

$@"{Regex.Escape(fileName)}(?:\(\d+\))?\.txt"

如果您需要整个字符串匹配,请在开头添加^,在结尾添加$(参见demo)。

jex.im/regulex

生成的可视化图表

enter image description here

在这里,

  • {Regex.Escape(fileName)} - 一个fileName变量将进行插值,所有特殊字符都将使用Regex.Escape
  • 进行转义
  • (?:\(\d+\))? - 可选序列:
    • \( - 文字(
    • \d+ - 1+位数
    • \) - 文字)
  • \.txt - .txt序列。