正则表达式,用于查找以一系列字符开头,包含或结尾的文件

时间:2014-09-29 20:12:24

标签: regex

首先,答案必须是使用REGEX,不建议使用.NET或Java等进行字符串操作......

我需要查找一个完整的文件名,不包括路径,是否包含一系列字符。

我可以搜索文件名,但无法浏览目录和子目录。

所以即:

他。+ .txt的模式匹配c:\ temp \ help.txt但也匹配c:\ hemp \ felp.txt,我试图避免后者。

我可以通过使用表达式[^ \] + $从目录中提取文件名,但不熟悉正则表达式来完成我想要的单个表达式。我也开始考虑分组。

1 个答案:

答案 0 :(得分:0)

你已经把所有积木都排好了:

\bhe[^\\]*\.txt$

仅匹配c:\temp\help.txt而不是c:\hemp\felp.txtc:\temp\shelp.txt

<强>解释

\b      # Start of alphanumeric word
he      # Match "he"
[^\\]*  # Match any number of characters except backslashes
\.txt   # Match ".txt"
$       # Make sure we're at the end of the string

如果你想确保匹配在\字符之后开始(或者如果文件名之前没有路径,则可能是字符串的开头),如果你的话,你可以使用positive lookahead assertion正则表达式引擎支持它们:

(?<=^|\\)he[^\\]*\.txt$

(?<=^|\\)表示&#34;断言当前位置位于字符串的开头(^)或反斜杠后面。