在 C# 中使用正则表达式列出只有 txt 文件的目录

Posted

技术标签:

【中文标题】在 C# 中使用正则表达式列出只有 txt 文件的目录【英文标题】:list directories which has only txt files using regex in C# 【发布时间】:2018-01-22 00:42:55 【问题描述】:

我有这个正则表达式

"\\\"([^\"]*)\\\"" 

返回所有目录。 但我只想要有 xyz.xml 文件的目录

请任何人帮助我。

 string url = //some url
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Credentials = new NetworkCredential(username, password);

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    
                        string html = reader.ReadToEnd();

                        Regex regex = new Regex("\\\"([^\"]*)\\\"");
                        //  Regex regex = new Regex("\\\"(xml)");
                        MatchCollection matches = regex.Matches(html);
                        if (matches.Count > 0)
                        
                            foreach (Match match in matches)
                            
                                if (match.Success)
                                
                                 //further code

【问题讨论】:

澄清:您只想要所有包含 xml 文件的目录? 一定要使用regex吗? Linq 解决方案似乎更容易。 你能贴出你使用这个正则表达式的代码吗?我认为这里真的不需要正则表达式 我想列出一个 http url 中的所有目录,其中包含 xyz.xml 文件 请在否决问题前要求澄清。我正处于学习的早期阶段。 【参考方案1】:

只需输入 new Regex("\"([^\"]+\\.xml)\"") 即可返回所有以 .xml 结尾的文件。

【讨论】:

非常感谢先生。它对我来说效果很好。但是还有一个问题。我试图递归遍历所有目录,但我的代码没有这样做。因此它无法在子目录中找到 xyz.xml 文件。请帮帮我。谢谢 那是另一个问题的主题。请关闭它并打开一个新的。

以上是关于在 C# 中使用正则表达式列出只有 txt 文件的目录的主要内容,如果未能解决你的问题,请参考以下文章

C# - 正则表达式匹配模式、替换和捕获行号 [来自 Txt 文件]

在正则表达式中使用引号,在 C# 中使用引号

尝试在 C# 中使用正则表达式获取整个 <div>

只有在字符串中找到一组数字时,C# 正则表达式才匹配

了解下C# 正则表达式

正则表达式