使用Regex.Matches时出现奇怪的错误

时间:2014-10-01 21:08:23

标签: c# regex

我试图找出一个()模式出现在字符串中的次数;这是代码:

int pMatches = (Regex.Matches("(", newDrug).Count + Regex.Matches(")", newDrug).Count)/2;

我收到以下错误:

Quantifier {x,y} following nothing

为什么呢?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你有两个问题。

首先,您以相反的顺序拥有Regex.Matches()的参数。这会导致输入字符串被视为模式,"("将被视为与其匹配的文本。 (看来您的输入可能以{字符开头,这使其成为无效的正则表达式,因此出现错误消息。)

Regex.Matches(newDrug, "(");

第二个是(是一个特殊的正则表达式字符,需要进行转义:

Regex.Matches(newDrug, Regex.Escape("("))