Я хочу сопоставить все значения href в моем содержании страницы. Я написал regex для этого и протестировал его на regex101
href[ ]*=[ ]*("|')(.+?)\1
Это находит все мои значения href правильно. Если я использую
href[ ]*=[ ]*(?:"|')(.+?)(?:"|')
его еще лучше, так как мне не нужно использовать определенную группу позже.
С помощью строки «и» в строке регулярного выражения я не могу правильно запустить регулярное выражение с помощью
$matches = array(); $pattern = "/href[ ]*=[ ]*("|')(.+?)\1/"; // syntax error $numOfMatches = preg_match_all($pattern, $pattern, $matches); print_r($matches);
Если я «убегу» на двойную кавычку и, таким образом, исправляю синтаксическую ошибку, я не получаю совпадений.
Итак – каков правильный способ применения данного регулярного выражения в PHP?
Спасибо за любую помощь
Заметки:
\ + * ? [ ^ ] $ ( ) { } = ! < > | : -
\ + * ? [ ^ ] $ ( ) { } = ! < > | : -
\ + * ? [ ^ ] $ ( ) { } = ! < > | : -
не помогло ни EDIT : Хорошо, я вижу, я действительно не должен делать это с регулярным выражением. Не могли бы вы предоставить некоторые полезные DOM-парсеры или любой другой инструмент, который я должен использовать с PHP?