如何读取文件进行过滤?

| 我需要读入一些目录,问题是我需要按文件名进行过滤。 例如:
\"1000123107.jpg\"
\"1700123107.jpg\"
\"1005123101.jpg\"
\"1077123107.jpg\"
,在这种情况下,我需要获取以字符
\"7.jpg\"
结尾的图像:只有
\"1000123107.jpg\"
,我尝试使用此方法:
string[] filePaths = System.IO.Directory.GetFiles(
     filePath + \"\\\\\", \"*7.jpg\", SearchOption.AllDirectories);
但这是行不通的,因为这样还会获得其他图像,这些图像的开头或中间为ѭ7。 (
\"1000123107.jpg\"
\"1700123107.jpg\"
和ѭ3so),所以那是错误的! 我只需要返回
\"1000123107.jpg\"
。 请有人告诉我该怎么办? 谢谢。     
已邀请:
我想你在找这个
var fileList = (new DirectoryInfo(filePath)).GetFiles().Where(a => Regex.IsMatch(a.Name, \"^[^7]*7.jpg$\")).ToList();
也许这会有所帮助。     
您当前的正则表达式仅要求其以\“ 7.jpg \”结尾。似乎您只想过滤具有单个\“ 7 \”并且位于文件名末尾的文件。您可以这样使用正则表达式:
^[^7]*7.jpg$
这是如何分解的:
^        - Start of the line.
[^7]*    - Allow any number of characters that are not sevens.
7.jpg    - Ensure that there is a 7 at the end of the filename.
$        - End of the line.
    
到目前为止,您具有以\“ 7.jpg \”结尾的文件列表。要过滤掉文件名中有其他7个位置的文件,请使用regex:
^[^7]*7\\.jpg$
(请注意,我的初始答案在开头和结尾均未包含^和$,您需要使用它们以避免虚假匹配)     
使用text2re,这是一个基于Web的免费“示例正则表达式”生成器。将您的字符串值发布到此处,它将返回您要选择的正则表达式组合。自己尝试,这是最好的方法。这将帮助您测试各种正则表达式。     

要回复问题请先登录注册