Как ограничить длину в регулярных выражениях?

У меня возникли проблемы с регулярным выражением, с которыми, я уверен, кто-то здесь может мне помочь.
Я пересматриваю веб-страницу и хочу найти первый экземпляр ссылки WordPress. Так, например, у меня есть что-то вроде этого:

preg_match("/<link\shref=.+\/wp-content\/themes\/(.+)\//", $site, $match);

Проблема в том, что есть страницы, на которых есть изображения с сайтов WordPress с одинаковыми wp-content/theme структура, то что происходит, регулярное выражение ловит первый <link на странице и идет вниз по странице до wp-content/theme/ изображение, и дает мне ложный положительный результат.

Я пытался это исправить, но я не могу добиться успеха. Я думал о том, чтобы как-то пересмотреть голову и искать только там, но я не смог этого сделать.
Что мне действительно нужно сделать, это найти <link затем найдите следующий > и только если wp/content/ существует между ними, дайте мне положительный результат.

Я не очень хорошо осведомлен о регулярных выражениях. Я знаю основы, я думаю, но этот может быть немного вне моей досягаемости.

Я был бы признателен за любой вклад здесь, я уверен, что есть простой способ сделать это.

Спасибо

0

Решение

Здесь есть две проблемы, только одна из которых вы спрашиваете.

Проблему, о которой вы спрашиваете, можно решить, сказав: «Продолжайте, пока не найдете > которая может быть решена с помощью [^>]+ вместо .+

Другая проблема заключается в том, что вы используете регулярное выражение для анализа HTML. Вместо этого используйте HTML-библиотеку.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]