繁体   English   中英

如何在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>';

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

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

提前致谢。

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

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

在这里preg_match就足够了。 \\K在最终打印时会丢弃先前匹配的字符,因此不会考虑先前匹配的>字符。 您也可以使用正向后视代替\\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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM