如何解决如何读取文件进行过滤?
| 我需要读入一些目录,问题是我需要按文件名进行过滤。 例如:\"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的免费“示例正则表达式”生成器。将您的字符串值发布到此处,它将返回您要选择的正则表达式组合。自己尝试,这是最好的方法。这将帮助您测试各种正则表达式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。