我在标题为$message
的变量中输入了一个字符串,如下所示:
$message = 'posted an event in <a href="http://52.1.47.143/group/186/">TEST PRA</a>';
我只想在锚标记中获取文本,例如 TEST PRA ,在这种情况下使用PHP。
我该如何以有效的方式做到这一点?有人可以在这方面帮助我吗?
提前致谢。
答案 0 :(得分:5)
使用preg_match_all
函数进行全局匹配。
preg_match_all('~>\K[^<>]*(?=<)~', $str, $match);
这里preg_match
就足够了。 \K
会丢弃先前在匹配时打印的匹配字符,因此不会考虑先前匹配的>
字符。您也可以使用正面的lookbehind而不是\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]);
<强>输出:强>
TEST PRA