Negative Lookahead Regex для частичного разбора dom
Я пытаюсь получить изображения в якорях. Я знаю, что хорошей практикой для этого является анализ DOM, но я пытаюсь сохранить память здесь.
<a href=''><img src=''></a>
Решение приведенного выше примера довольно простое <a[^>]*?href=['\"](.*?)['\"][^>]*?>[\s\S]*?<img
, Но в более сложном примере
<a href=''></a><a href=''><img src=''></a>
что регулярное выражение не удается, и собирает всю строку с неправильной привязкой, мне нужно как-то добавить отрицательный взгляд, и я пытаюсь до сих пор (?!</a>)<a[^>]*?href=['\"](.*?)['\"][^>]*?>[\s\S]*?<img
но по какой-то причине это не имеет значения.
1 ответ
Решение
Положите отрицательную проверку на промежуточное .*
а также [\s\S]*
, Потому что это соответствует также закрывающему тегу привязки.
<a[^>]*?href=['\"](?:(?!<\/a>).)*?['\"][^>]*?>(?:(?!<\/a>)[\s\S])*?<img