如何提取 PHP 中锚标记之间的文本?

How to extract the text between anchor tag in PHP?

我在标题为 $message 的变量中有一个字符串,如下所示:

$message = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';

我只想获取锚标记内的文本,即 TEST PRA 在这种情况下使用 PHP。

我应该如何高效地执行此操作?有人可以在这方面帮助我吗?

提前致谢。

使用preg_match_all函数进行全局匹配。

preg_match_all('~>\K[^<>]*(?=<)~', $str, $match);

这里preg_match就够了。 \K 在最后打印时丢弃先前匹配的字符,因此它不会考虑先前匹配的 > 字符。您也可以使用积极的回顾而不是 \K,例如 (?<=>)[^<>]* 取反字符 class,匹配除 <> 之外的任意字符零次或多次。 (?=<),断言匹配后必须跟有 < 个字符的肯定前瞻断言。

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