2016-06-10 1 views
2

Я пытаюсь написать регулярное выражение, которое может найти n-ое вхождение совпадения чисел (где N - число, которое может увеличиваться в цикле for). Я могу заставить регулярное выражение успешно соответствовать числу, но я не могу заставить его соответствовать определенному числу в последовательности. Я использую регулярное выражение: ([0-9]+){2}.Поиск n-го вхождения числа с использованием regex

То, что я пытаюсь сделать, это выбрать номер из строки, как: Красный, 12, зеленый, 5, синий, 6

Использование регулярных выражений, которые могут выбрать из, 12 затем 2, затем 3. Я надеялся, что часть регулярного выражения может выполнить это, но когда я установил это число до 2, например, вместо того, чтобы выбрать номер 5, как ожидалось, он поднимает 2 в 12, и когда я устанавливаю число до 3, он не может найти матч вообще. Может ли кто-нибудь дать представление о том, что я делаю неправильно?

ответ

2

Вы можете использовать это регулярное выражение, чтобы выбрать N й номер:

(?:\D*(\d+)){2} 

Replace 2 любое количество вы хотите. Ваш номер доступен в захваченной группе # 1

  • \D совпадает с любым нецифры
  • \d Совпадает с цифрой

RegEx Demo

+1

Это сообщество удивительно! Спасибо, это отлично работало – user3153443

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