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

PHP*_*Fan 0 html php string anchor html-parsing

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

$message = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';
Run Code Online (Sandbox Code Playgroud)

我只想在这种情况下使用PHP 在锚标记(即TEST PRA)中获取文本。

我应该如何有效地做到这一点?有人可以在这方面帮助我吗?

提前致谢。

Avi*_*Raj 5

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

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

preg_match足够了。\K最终将放弃先前匹配的字符以进行打印,因此不会考虑先前匹配的>字符。您可以使用正向后视代替\K,例如(?<=>)[^<>]*否定的字符类,与任何字符匹配,但不匹配<>,零次或多次。(?=<),正向超前断言,断言必须在匹配项后加上<字符。

演示

$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]);
Run Code Online (Sandbox Code Playgroud)

输出:

TEST PRA
Run Code Online (Sandbox Code Playgroud)