Как получить историю захватов ⇐ Php
-
Гость
Как получить историю захватов
Насколько я могу судить, это не только проблема PHP, я спрашиваю здесь о PHP (на самом деле PHP7).
Рассмотрим такое простое регулярное выражение (если это неясно — это пример):
/((\w+): (\d+))+/ и текст к нему:
foo: 2008bar: 2009 Совпадение распространяется на весь текст, проблема в том, что фрагменты используются и забываются, как только механизм регулярных выражений перемещается по тексту. В результате вы получите только последние снимки.
Я хотел бы получить все действительные (правильные) снимки, всю историю, а не только последние снимки.
Вот код для проверки:
И вот результат
Массив ( [0] => Массив ( [0] => foo: 2008бар: 2009 ) [1] => Массив ( [0] => бар: 2009 г. ) [2] => Массив ( [0] => бар ) [3] => Массив ( [0] => 2009 г. ) ) Как видите, был сопоставлен весь текст, но для снимков были сохранены только последние. Их не хватает:
foo: 2008 фу 2008 год Поэтому мой вопрос: как получить всю «историю» захватов?
Насколько я могу судить, это не только проблема PHP, я спрашиваю здесь о PHP (на самом деле PHP7).
Рассмотрим такое простое регулярное выражение (если это неясно — это пример):
/((\w+): (\d+))+/ и текст к нему:
foo: 2008bar: 2009 Совпадение распространяется на весь текст, проблема в том, что фрагменты используются и забываются, как только механизм регулярных выражений перемещается по тексту. В результате вы получите только последние снимки.
Я хотел бы получить все действительные (правильные) снимки, всю историю, а не только последние снимки.
Вот код для проверки:
И вот результат
Массив ( [0] => Массив ( [0] => foo: 2008бар: 2009 ) [1] => Массив ( [0] => бар: 2009 г. ) [2] => Массив ( [0] => бар ) [3] => Массив ( [0] => 2009 г. ) ) Как видите, был сопоставлен весь текст, но для снимков были сохранены только последние. Их не хватает:
foo: 2008 фу 2008 год Поэтому мой вопрос: как получить всю «историю» захватов?
Мобильная версия