Regex Match以我的模式抛出异常

本文关键字:模式 抛出异常 我的 Match Regex | 更新日期: 2023-09-27 18:09:34

我在下面调用match,但当我尝试将"*_sales.txt"作为配置传入时,收到一个异常,上面写着"表达式计算器中的内部错误"。文件名模式。出于某种原因,它不喜欢这种模式。我做错了什么?我试着把它传进来,有没有"@"符号。

Match match = Regex.Match(Path.GetFileName(file), @config.FileNamePattern, RegexOptions.IgnoreCase);

Regex Match以我的模式抛出异常

Regex.Match的第二个参数是正则表达式模式。您传递的"*_sales.txt"以一个*开头,您认为它是一个通配符,但实际上是一个匹配零次或多次出现的量词。它不能量化模式的开头,它是一个无效的正则表达式。

你可能想使用

@"_sales'.txt$"

以检查字符串是否以CCD_ 4结尾。此外,将RegexOptions.RightToLeft添加到选项中可以优化从末尾匹配字符串。

请注意,.被转义以匹配文字点。

此外,逐字逐句的字符串文字是定义正则表达式模式的最佳方式,因为您只需要转义一次特殊字符。