正则表达式:匹配从字符串分开的一组文件名

问题描述:

我搜索了很多,得到了多个答案没有在我的情况下工作。样品字符串这个表达式应该从事的是正则表达式:匹配从字符串分开的一组文件名

"Purging file summary_t.dat after pre_summary.csv, data.dat clogged" 

Regex.Replace( “正则表达式”, “$文件名”)应该给这个

"Purging file $fileName after $fileName, $fileName clogged" 

正则表达式的我已经试过是

^[\w,\s-]+\.[A-Za-z]{3}$ 

它只匹配第一个文件名

(?:[^\\:]+\\)*((?:[^:\\]+)\.\w+) 

这一个相匹配的一切,包括在多个文件名之间的文本,所以我只得到一个$文件名整条生产线

注:该字符串是通用的,所以我真的不知道我在哪里可以在一个字符串中获得一个文件名

试试这个

(\w+\.\w+) 

https://regex101.com/r/wK3cK7/1

输出:

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

谢谢,它的工作原理。 –

这必须工作,以及

\w+\.\w+ 

\w = Any letter, + = one or more, \. = followed by a dot (escape the . meaning, else only . means 0 or more) 这里是链接演示。 http://regexr.com/3cu60

+0

▲删除[],我的坏习惯 –

+0

但这是一个很好的习惯与复杂的正则表达式 –