Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用星号制作正则表达式研究人员_Regex - Fatal编程技术网

Regex 如何使用星号制作正则表达式研究人员

Regex 如何使用星号制作正则表达式研究人员,regex,Regex,有人知道如何在windows操作系统中使用星号字符制作正则表达式研究人员吗 示例:*.pdf->查找所有pdf文件 我一直在尝试这个片段,但我不确定它是否很强大: FTP.FTPclient ftp = new FTP.FTPclient("ftp://myservices.com/","username", "pass"); Regex reg = new Regex(@"Hi"); string[] filesArray = ftp.Li

有人知道如何在windows操作系统中使用星号字符制作正则表达式研究人员吗

示例:*.pdf->查找所有pdf文件

我一直在尝试这个片段,但我不确定它是否很强大:

   FTP.FTPclient ftp = new FTP.FTPclient("ftp://myservices.com/","username", "pass");
            Regex reg = new Regex(@"Hi");
            string[] filesArray = ftp.ListDirectory("/path/").Where(fileName => reg.IsMatch(fileName)).ToArray();

您可以使用此正则表达式查找任何扩展名为pdf的文件名

.+\.pdf$
匹配单个字符

+
是一个量词,它匹配1到多个前面的字符


您可以使用的
GetExtention
方法获取文件的扩展名

ftp.ListDirectory("/path/")
   .Where(Path.GetExtension(fileName)==".pdf")
   .ToArray();

如果要检查文件内容中的特定单词

ftp.ListDirectory("/path/")
   .Where(File.ReadAllText(fileName).Contains(yourWord))
   .ToArray();

如果要检查文件名中的特定单词

ftp.ListDirectory("/path/")
       .Where(fileName.Contains(youWord))
       .ToArray();

不要使用
*.pdf
,尝试使用
(*)pdf
。换句话说,将
*
替换为
(.*)
,看看它是否有效。

你是说用C#搜索文件结构,用正则表达式搜索词来查找文件吗?嗨,谢谢你的回答。但我想知道的是,我怎样才能搜索任何类型的输入字符。示例:如果我的输入是“Dog”,它将检索包含“Dog”或“Dog”的每个文件@BrunoFerreia是否要在该文件名或内容中搜索file@BrunoFerreira你不需要正则表达式..使用Contains方法的字符串..检查编辑器非常感谢。。。如何检索同时包含大写和小写字符的文件?示例:“Dog”&“Dog”@BrunoFerreira您可以使用
IndexOf
字符串方法与
StringComparison.CurrentCultureIgnoreCase
。因此,如果
fileName.IndexOf(yourWord,StringComparison.CurrentCultureIgnoreCase)
返回-1,则找不到它!嗨,安达,我如何用输入字符串替换pdf?示例:Regex reg=new Regex(@“(*)Pdf”);-->Regex reg=new Regex(@“(*)MyInputString”);你好,布鲁诺。不创建Regex对象,只需使用静态方法Regex.IsMatch()。只需传递输入字符串和模式字符串。该方法返回一个布尔值。试试看,假设变量MyInputString是输入模式,变量MyStringToCheck是基本字符串。可以这样做:Regex.IsMatch(MyStringToCheck,“(.*”)+MyInputString,RegexOptions.IgnoreCase);嗨,路易,谢谢你的帮助。所以,我一直在尝试这个方法,在某些情况下效果很好,而在其他情况下则不行!例如:如果我在Ftp上运行这个代码段,它可以工作,但是如果我在本地文件系统上运行它,它不会响应:String[]files=Directory.GetFiles(SrcPath)。其中(fileName=>Regex.IsMatch(fileName,(.*)”+*.pdf,RegexOptions.IgnoreCase))。ToArray()我不知道为什么当它遇到一个无pdf文件时,编译器会崩溃!你好,布鲁诺。请用最新代码的副本更新问题。还请包括您收到的错误。