я не могу следовать, почему эти два выражения различны:регулярного выражения без захвата и захватывая группы и необъяснимое потребление
^(\d+)(?:\.(\d+))?(?:\.(\d+))?$
applied to 1.0.3
group 1 =>1
group 2 =>0
group 3 =>3
, который, как ожидается. но если я пытаюсь обобщить для любого ряда \d\.
то больше не работает:
^(\d+)(?:\.(\d+))+$
applied to 1.0.3
group 1 =>1
group 2 =>3
И достаточно странно для меня все, кроме первой и последней записи исчезает:
^(\d+)(?:\.(\d+))+$
applied to 1.2.3.4.5.6.7.8.9
group 1 =>1
group 2 =>9
Не совсем что я ожидал
Только последний подходящий текст доступен во второй группе захвата. Группы не являются динамическими, независимо от того, какие группы вы определяете, и многие из них получат согласованный результат. – anubhava
Повторяющиеся группы захвата ведут себя так. –