У меня есть одна строка в переменной под названием $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