我正在尝试创建正则表达式以匹配以下情况:
myFile.txt
或myFile(1).txt
但与此相符:
myFile WithSimilarName.txt
这是我的尝试:
@"({fileName}\(d+\)\.txt)|({fileName}.txt)"
答案 0 :(得分:2)
您希望匹配具有fileName
的文件名,然后匹配以.txt
结尾的括号内的可选数字序列。
您的图案可以通过以下方式形成:
$@"{Regex.Escape(fileName)}(?:\(\d+\))?\.txt"
如果您需要整个字符串匹配,请在开头添加^
,在结尾添加$
(参见demo)。
在这里,
{Regex.Escape(fileName)}
- 一个fileName
变量将进行插值,所有特殊字符都将使用Regex.Escape
(?:\(\d+\))?
- 可选序列:
\(
- 文字(
\d+
- 1+位数\)
- 文字)
\.txt
- .txt
序列。