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

问题描述 投票:-1回答:1

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

myFile.txtmyFile(1).txt

但不要与此相符:

myFile WithSimilarName.txt

这是我的尝试:

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

c# regex
1个回答
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序列。
© www.soinside.com 2019 - 2024. All rights reserved.