C# 正则表达式:分别与字符串匹配一组文件名

C# 正则表达式:分别与字符串匹配一组文件名,c#,asp.net,regex,C#,Asp.net,Regex,我在谷歌上搜索了很多,得到了很多答案,但在我的案例中没有一个有效。这个正则表达式应该使用的示例字符串是 "Purging file summary_t.dat after pre_summary.csv, data.dat clogged" Replace(“Regex”,“$fileName”)应该给出 "Purging file $fileName after $fileName, $fileName clogged" 我试过的正则表达式是 ^[\w,\s-]+\.[A-Za-z]{3}

我在谷歌上搜索了很多,得到了很多答案,但在我的案例中没有一个有效。这个正则表达式应该使用的示例字符串是

"Purging file summary_t.dat after pre_summary.csv, data.dat clogged"
Replace(“Regex”,“$fileName”)应该给出

"Purging file $fileName after $fileName, $fileName clogged"
我试过的正则表达式是

^[\w,\s-]+\.[A-Za-z]{3}$
它只匹配第一个文件名

(?:[^\\:]+\\)*((?:[^:\\]+)\.\w+)
这一个匹配所有内容,包括多个文件名之间的文本,因此整行只能得到一个$filename

注意:字符串是通用的,所以我不知道从哪里可以获得字符串中的文件名

(\w+\.\w+)

输出:

MATCH 1
1.  [13-26] `summary_t.dat`
MATCH 2
1.  [33-48] `pre_summary.csv`
MATCH 3
1.  [50-58] `data.dat`

这也必须奏效

\w+\.\w+
\w=任意字母,+=一个或多个,\.=后跟一个点(转义。仅限else。表示0或更多)

这里是演示的链接

▲ 为了改掉我的坏习惯