2014-10-01 5 views
-1

Я пытаюсь найти, сколько раз появляется символ a() в строке; вот код:Странная ошибка при использовании Regex.Matches

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

Я получаю следующее сообщение об ошибке:

Quantifier {x,y} following nothing 

Почему? Заранее спасибо.

+0

Сообщите об ошибке ** всего **. Это всего лишь дробь. – omni

ответ

1

У вас есть две проблемы.

Во-первых, у вас есть аргументы Regex.Matches() в обратном порядке. Это приводит к тому, что входную строку обрабатывают как шаблон, а "(" - как текст, соответствующий ему. (Похоже, что ваш вход может начинаться с { характер, что делает его недопустимое регулярное выражение, следовательно, сообщение об ошибке.)

Regex.Matches(newDrug, "("); 

Во-вторых, ( является особым регулярным выражением характер и должен быть экранирован :

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

Большое спасибо. – bob

Смежные вопросы