Я пытаюсь использовать REGEX для разделения строки при сохранении разделителей. Я хочу разделить очень большую и непредсказуемую строку друг с другом с помощью якорных тегов. Я использую HTML аккуратно, чтобы теги были правильными, однако все могло появиться до или после тега привязки, который я хочу сопоставить.PHP Regex Match Anchor Tag
*PRECEDING-ANYTHING*<a *ANYTHING*>*ANYTHING*</a>*PROCEDING-ANYTHING*
*PRECEDING-ANYTHING*<a *ANYTHING*>*ANYTHING*</a>*PROCEDING-ANYTHING*
, где URL-адрес href может быть любым, и дополнительные атрибуты, такие как «цель», также могут быть любыми.
Я провел много поиска и тестирования, и либо я делаю что-то неправильно, либо другие ответы на переполнение стека не применяются.
Использование
$parts= preg_split($pattern, $textWithAnchors, -1, PREG_SPLIT_DELIM_CAPTURE)
Я надеялся иметь $ частей быть похожи на следующее.
parts[0] is equal to *PRECEDING-ANYTHING*
parts[1] is equal to <a *ANYTHING*>*ANYTHING*</a>
and so forth
Важно, чтобы регулярное выражение фиксировало все якорные метки и все внутри.
Я был бы очень признателен за любую помощь, я задаю специально для регулярного выражения, которое выполнит это на PHP. Я знаю, что есть парсеры HTML, однако использование REGEX в этой ситуации является оптимальным. Может быть, это будет опыт обучения.
Пожалуйста, посмотрите на класс 'DOMDocument', это гораздо более практичный и поддерживает загрузку частичного кода. Вы можете легко загрузить одну из своих строк и позволить ей находить все 'a'-теги. –
Посмотрите первый ответ здесь: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
Показать какое-то из регулярных выражений, которые вы пробовали. –