Сопоставление чисел в строке определенной длины с регулярным выражением - PullRequest
0 голосов
/ 19 августа 2009

Скажи, что у меня есть такая строка: "23423423" и я хочу найти все числа с длиной 2 с регулярным выражением, как это "[0-9] {2}"

Теперь в моем текстедиторе это дает мне 7 совпадений: 23, 34, 42, 23, 34, 42, 23

Однако в C # я, кажется, получаю только 4 23, 42, 34, 42

Мне нужен первый сценарий, но я не могу найти решение.

Я безуспешно пытался использовать regex.Match () и regex.Matches ().

Кто-нибудь знает как?

Ответы [ 3 ]

5 голосов
/ 19 августа 2009

Этот вопрос имеет несколько решений очень похожей проблемы, и, адаптируя простейшую из них, вы можете использовать что-то вроде:

Regex regexObj = new Regex("\d\d");
Match matchObj = regexObj.Match(subjectString);
while (matchObj.Success) {
    matchObj = regexObj.Match(subjectString, matchObj.Index + 1); 
}
0 голосов
/ 20 августа 2009
(?=([0-9][0-9])).

Используйте это регулярное выражение с методом Matches (), затем получите соответствующий номер, вызвав Group (1) для каждого из объектов Match.

Но какой редактор вы используете, и как вы получили его для выполнения совпадений? Это не нормальное поведение для любого редактора , который я использовал.

0 голосов
/ 19 августа 2009

Решить это было бы намного проще, используя манипуляции со строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...