Member 9331278 Ответов: 3

Я пытаюсь найти количество периодов в строке


I am trying to find the number of periods(.) in a string

Я получаю 140, когда должен, когда должен получить только 2.
Я не понимаю, почему.
Я предполагаю, что он работает не со специальными символами, а с буквами.

Что я уже пробовал:

string period = ".";
               Regex searchFor = new Regex(period);
               int numOfPeriod = searchFor.Matches(SBDuties).Count;
               Response.Write(period +"<br/>");

               Response.Write("Number of full stops " + numOfPeriod +"<br/>");
               Response.Write(SBDuties);

3 Ответов

Рейтинг:
24

Patrice T

Цитата:
Я пытаюсь найти количество точек (.) в строке

Вы используете регулярное выражение, бывает, что некоторые символы имеют особое значение в регулярном выражении, и вам повезло, потому что". " - это особый символ, который соответствует любому символу.

Регулярное выражение-это мощный инструмент, но, как и с любым другим инструментом, вам нужно научиться им пользоваться.

Всего несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Рейтинг:
12

ZurdoDev

Есть и другие варианты, помимо регулярных выражений, которые работают очень хорошо. Видеть c# - как бы вы подсчитали вхождения строки в строку? - переполнение стека[^] для нескольких хороших альтернатив.


0x01AA

а 5 для альтернатив

ZurdoDev

Спасибо.

Рейтинг:
10

F-ES Sitecore

string period = "[.]";


ZurdoDev

Небольшое объяснение?

Matt T Heffron

Не стал бы
  период строки= @"\.";
работать еще проще?