Я хочу сопоставить строки вида:
Разделы 158, 417, 418, 500, 501 и 1111
Где я получаю все числа в виде обратных ссылок (заменяя их гиперссылками). Я получил это далеко:
$text = preg_replace_callback("/Sections? ([0-9.]+)(?:(?:and|,| |or)+([0-9.]+))+/","hyperlink_me", $text);
Это PHP (который использует регулярные выражения, совместимые с perl). Часть PHP хороша, я думаю, это регулярное выражение, которое не делает то, что я хочу, но я даю всю строку кода для контекста.
Проблема в том, что только две обратные ссылки, которые я получаю (кроме всей строки), относятся к первому числу («158») и последнему («1111»). Похоже, что вторая захваченная обратная ссылка ("([0-9.] +") Просто перезаписывается со второго числа и далее. Начиная с этой страницы , в разделе "Повторение и обратные ссылки" я получаю Идея, что это часто проблема, но не может понять, как решить ее в этом контексте. Любые гении-регулярники, которые могут помочь?