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

时间:2015-01-20 20:26:19

标签: c# regex

我是Regex和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
    };

现在文件中pattern的输入是.htc,我知道正则表达式中的一个点表示任何字母,我试图确保模式被强制为{{ 1}}

.htc

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

它仍然不接受pattern = string.Format(@"\b" + pattern + @"\b"); 中的点,任何想法如何推翻这个问题?

编辑:我不是在寻找文件扩展名,我想要做的是扫描HTML和文本文件内容,看看它是否包含某些单词,如.htc

编辑2:谢谢你们的答案,.htc正是我所寻找的!

1 个答案:

答案 0 :(得分:1)

特殊的正则表达式字符必须转义,如果它们的意思是。

pattern = @"\.htc";

您可以使用

自动执行此操作
pattern = Regex.Escape(".htc");

如果您只需要不区分大小写,请使用此解决方案"包含"功能:https://stackoverflow.com/a/15464440/880990