2016-05-26 2 views
0

Я пытаюсь подсчитать количество раз, которое я использую \ n \ n \ n (3 строки) после некоторого текста. Он считается почти таким, какой мне нравится, проблема в том, что вы спамете новые строки, которые будут считаться, что я не хочу.Образец сопоставления регулярных выражений

Редактировать: похоже, регулярное выражение из regexr не поддерживает .net, поэтому мне нужно создать шаблон, который работает с .net.

Пример текста, регулярное выражение будет проверять:

Описание для чего-то

текст \ п \ п \ п // это будет делать DescriptionAmount ++

Описание для чего-то

текст \ n \ n \ n // это сделает DescriptionAmount ++

\ n \ n \ n // этого не следует добавлять на DescriptionAmount

Вот код, который я сделал до сих пор.

int DescriptionAmount = Regex.Matches(somestring, "[^\w$](\r\n){2}[^\w$]").Count; 

ответ

0

Чтобы убедиться, что вы захватить 3 переносы строк после того, как какой-то текст будет принимать что-то вроде:

\w+\s*\n{3} 

Поскольку это .net, вам необходимо либо поставить @ перед:

@"\w+\s*\n{3} 

или избегать косых черт, таких как:

"\\w+\\s\n{3} 

Вы упомянули, что ищете три \n, но в вашем поиске есть \r\n. Если вы ищете \r\n вместо этого, просто добавьте \r перед \n и объедините с() для (\\r\\n) или (\r\n) в выражениях выше.

одна вещь, в зависимости от текста в некоторой строке, вы можете применить многострочный вариант, как:

Regex.Matches(somestring, "\\w\\s\n{3}", RegexOptions.Multiline) 
+1

спасибо, изменено так, чтобы оно выглядело как @ "\ w + \ s * (\ r \ n) {3}" \ r \ n должно быть вместе(). – Lucy

1

Попробуйте использовать квантор {x, y}, чтобы выбрать, сколько жетонов вы хотите совместить.

«*» будет соответствовать предыдущему символу 0 или много раз, то есть он будет соответствовать любому \ n после третьего токена.

\ n {3} говорит, что \ n должно быть сопоставлено 3 раза больше не менее.

Я нахожу этот инструмент http://regexr.com/ очень полезным для создания и отладки операторов регулярных выражений.

+0

Спасибо за лучшее регулярное выражение шаблон, странная часть, что я получаю 0 отсчеты сейчас и Я использую этот сайт. Образец совпадает с несколькими символами новой строки после текста тоже ... – Lucy

+0

Не используйте regexr при проверке регулярных выражений .net, он не поддерживает его синтаксис. –

+0

Тогда что вы предлагаете? Это может быть причиной того, что я просто получаю 0 в подсчете, что синтаксис в действительности неверен. – Lucy

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