C# 正则表达式不接受。在C中#

C# 正则表达式不接受。在C中#,c#,regex,C#,Regex,我对正则表达式和C#有点陌生 我正在尝试构建一个工具来遍历文件列表,然后重新运行文件名(如果它包含某个模式),我使用下面的块遍历列表 var queryMatchingFiles = from file in fileList where file.Extension != ".dll" && file.Extension != ".pdb" let fileText = File.ReadAllText(file.FullName) let ma

我对正则表达式和C#有点陌生

我正在尝试构建一个工具来遍历文件列表,然后重新运行文件名(如果它包含某个模式),我使用下面的块遍历列表

var queryMatchingFiles =
    from file in fileList
    where file.Extension != ".dll" && file.Extension != ".pdb"
    let fileText = File.ReadAllText(file.FullName)
    let matches = Regex.Matches(fileText, pattern, RegexOptions.IgnoreCase)
    where matches.Count > 0
    select new {
        name = file.FullName,
        matchedValues =
            from Match match in matches
            select match.Value
    };
现在文件中的
模式
的输入是
.htc
,我知道Regex中的一个点表示任何字母,我尝试执行此操作以确保模式被强制设置为
。htc

pattern = @"\b" + pattern + @"\b";

而且它仍然不接受htc中的圆点,有什么办法可以解决这个问题吗

编辑:我不是在找文件扩展名,我要做的是扫描HTML和文本文件的内容,看看它是否包含像
.htc

pattern = @"\b" + pattern + @"\b";

编辑2:感谢你们的回答,
pattern=Regex.Escape(“.htc”)就是我要找的

如果特殊正则表达式字符按原样表示,则必须对其进行转义

pattern = @"\.htc";
你可以用电脑自动完成

pattern = Regex.Escape(".htc");

如果只需要不区分大小写的“contains”函数,也可以使用此解决方案:

使用正则表达式检查文件扩展名听起来是解决2个问题而不是1个问题的好方法。将BCL API用于路径:…或仅使用
EndsWith
:)你能给我举个例子吗?我没有检查文件扩展名,我正在扫描不同的文本文件和html页面,查看页面是否包含
.htc
链接
extension=Path.GetExtension(fileName)
我提供的链接上有一些示例。如果您是MSDN的新手(听起来像),那么恭喜您;MSDN是希望了解.NET和C#的人们的金矿。要从您打开的文本文件(它们是文本文件,对吗?)中找出实际的文件名,您仍然需要一个中间步骤,除非这些文件只包含文件名,在这种情况下,MSDN上的示例应该足够了,对吧?如果您只是简单地扫描一个文件以查找特定的文本,那么您可以简单地使用and。谢谢,这就是我正在寻找的