【发布时间】:2017-02-07 00:49:00
【问题描述】:
我在下面调用 match,但我收到一个异常,上面写着“表达式求值器中的内部错误”。当我尝试将“*_sales.txt”作为 config.FileNamePattern 传递时。出于某种原因,它不喜欢这种模式。我究竟做错了什么?我尝试在有和没有'@'符号的情况下传递它。
Match match = Regex.Match(Path.GetFileName(file), @config.FileNamePattern, RegexOptions.IgnoreCase);
【问题讨论】:
-
因为你传递了一个无效的正则表达式。它不能以量词开头。试试
@"_sales\.txt$" -
和
*_sales.txt无论如何都不是有效的模式。*是一个量词,你没有什么可以量化的。.*sales.txt将是有效的。 -
实际上,我认为这个问题与通配符无关,只是
*被用作不正确的正则表达式模式,因为 OP 认为它也可以用作正则表达式。