У меня есть одна строка в переменной под названием $message
:
$message = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';
Я хочу только получить текст в теге anchor, т.е. TEST PRA в этом случае с использованием PHP.
Как мне сделать это эффективным способом? Может кто-нибудь, пожалуйста, помогите мне в этом отношении?
Заранее спасибо.
Используйте preg_match_all
fororder для глобального сопоставления.
preg_match_all('~>\K[^<>]*(?=<)~', $str, $match);
Здесь preg_match
будет достаточно. \K
отбрасывает ранее сопоставленные символы от печати в финале, поэтому он не будет учитывать символ, сопоставленный с предыдущим символом >
. Вы можете использовать положительный lookbehind вместо \K
также, как (?<=>)
<=> (?<=>)
. [^<>]*
Отмеченный класс символов, который соответствует любому символу, но не <
или >
, ноль или более раз. (?=<)
, Положительное утверждение lookahead, которое утверждает, что за соответствием должен следовать символ <
character.
DEMO
$str = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>'; preg_match('~>\K[^<>]*(?=<)~', $str, $match); print_r($match[0]);
Вывод:
TEST PRA