ПЕРЕД тем, что вы делаете в нижнем выражении или отмечаете как дубликат - пожалуйста, прочитайте (особенно отказ от ответственности).Regex для разбиения списка целых чисел, разделенных пробелами на группы
У меня есть простой список целых чисел, например: 1 23 765 23 25 67 12
(номера не имеют значения, любая длина возможна). Я хотел бы разделить этот выход на один матч, с каждым номером в отдельную группу, так что я создал регулярное выражение:
(\d+)(?:\s(\d+))*
Мое понимание этого заключается в следующем:
- захватить ряд в первую группу
- найти множество пространства (я знаю
\s
не только пространства), а также ряд и поставить это число в следующую группу
Но выход, который я получаю на Regex101, отличается - он возвращает только первый и последний числа из моего первоначального списка (в данном случае: 1
и 12
). Вот LINK.
Если на выходе больше строк, каждая строка является отдельным совпадением, причем все целые числа в ней разделяются на группы.
Отказ от ответственности: Я знаю, что могу сделать это просто путем разделения на любом языке программирования, который поддерживает строковые манипуляции, но мне просто интересно, почему это не работает, и я ищу объяснение. Я также не мог найти примеров такого решения через Интернет, потому что все решения, которые я нашел, подразумевали использование split() (или, однако, этот метод назван в <insert your programming language here>
).
Итак, вы ищете только объяснение, а не решение? Regex101 поддерживает только ограниченное количество ароматизаторов регулярных выражений. В модуле регулярных выражений Python PyPi .NET вы получите все записи с этим регулярным выражением. –
Я не уверен, что ваша скрипка регулярного выражения на самом деле показывает только одно совпадение. Напротив, я вижу, что каждое число в синем цвете соответствует шаблону '\ d +'. Вы можете спросить об этом в контексте языка или инструмента, отличного от Regex101. –
Существует хорошее объяснение аналогичного шаблона на http://stackoverflow.com/questions/24857005/why-does-a-repeated-capture-group-return-these-strings. Если вы не укажете свою проблему, вопрос будет обманом. –