2014-10-01 24 views
-1

我想找出多少次()模式出現在一個字符串;這裏是代碼:奇怪的錯誤,而使用Regex.Matches

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

我收到以下錯誤:

Quantifier {x,y} following nothing 

爲什麼?提前致謝。

+0

請提供** entire **錯誤消息。這只是一小部分。 – omni 2014-10-01 21:11:08

回答

1

你有兩個問題。

首先是你有相反的順序Regex.Matches()的參數。這會導致輸入字符串被視爲模式,並將"("視爲與其匹配的文本。 (似乎您的輸入可以與{字符,這使得它無效的正則表達式,因此錯誤消息開始。)

Regex.Matches(newDrug, "("); 

第二是(是一個特殊的正則表達式字符和需要轉義:

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

非常感謝。 – bob 2014-10-01 21:14:09