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
的第二个参数是正则表达式模式。您传递的"*_sales.txt"
以一个*
开头,您认为它是一个通配符,但实际上是一个匹配零次或多次出现的量词。它不能量化模式的开头,它是一个无效的正则表达式。
你可能想使用
@"_sales'.txt$"
以检查字符串是否以CCD_ 4结尾。此外,将RegexOptions.RightToLeft
添加到选项中可以优化从末尾匹配字符串。
请注意,.
被转义以匹配文字点。
此外,逐字逐句的字符串文字是定义正则表达式模式的最佳方式,因为您只需要转义一次特殊字符。