[英]php regex - remove empty a tag around string
我有以下字符串,它是一个较大的字符串的一部分,我认为我需要在其上执行preg_replace
。
> <a href=''>About Us</a>
较大的字符串是:
<a href='http://ecolution.dev'>Home</a> > <a href=''>About Us</a> > Meet the Directors
现在,我可以很容易地将第一个字符串与/ .*?<\\/a>\\s+/
匹配。
我实际上需要做的是从字符串以及</a>
删除 > <a href=''>
。 因此,纯文本保留在较大的字符串中。
我可以在多个preg_replace
调用中分别删除这两个部分,但这似乎并不是我的最佳选择。
有没有一种方法可以获取 > <a href=''>
和</a>
之间的任何文本,然后将其输出为纯文本,以便 > <a href=''>About Us</a>
变成About Us
?
编辑
我应该早些提到这一点。 这是ExpressionEngine内部动态创建的面包屑系统。 某些条目空href
,所以<a href=''>abc</a>
和那些条目需要有自己的a
标签去除,因此为什么试图匹配上述字符/字符串,以便它只是纯文本
<a href='http://ecolution.dev'>Home</a> > <a href=''>About Us</a> > Meet the Directors
会成为
<a href='http://ecolution.dev'>Home</a> > About Us > Meet the Directors
这将删除具有空href: <a href=''>text</a>
任何锚链接的标签:
$html = "<a href='http://ecolution.dev'>Home</a> > <a href=''>About Us</a> > Meet the Directors";
$result = preg_replace("/<a href=''>(.*?)<\/a>/", "$1", $html);
// Result = "<a href='http://ecolution.dev'>Home</a> > About Us > Meet the Directors"
在preg_replace
的第二个参数中使用'$1'
允许我们放回第一个匹配的字符串(从我们的preg_replace
的第一个参数开始)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.