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

时间:2015-03-14 12:04:57

标签: php html string html-parsing anchor

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

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

我只想在锚标记中获取文本,例如 TEST PRA ,在这种情况下使用PHP。

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

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

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

这里preg_match就足够了。 \K会丢弃先前在匹配时打印的匹配字符,因此不会考虑先前匹配的>字符。您也可以使用正面的lookbehind而不是\K,例如(?<=>)[^<>]*否定字符类,匹配任何字符但不匹配<>,为零或更多次。 (?=<),肯定前瞻性断言,断言匹配必须后跟<个字符。

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