[英]Remove text that is in the middle of <b></b>
我在<b></b>
中间有文字,例如:
La <b>la</b>: the 1 <br></br>Aventuroj <b>aventuro</b>: adventure 2 <br></br>de <b>de</b>: by, from, of, since 3 <br></br>Mirlando <b>miri</b>: marvel, marvel at, wonder<br/><b>lando</b>: country, land 4 <br></br>by <b>ba</b>: bah, nuts, pooh 5 <br></br>for <b>for</b>: away 6 <br></br>
我想要一个可以从字符串中去除文本和<b></b>
的正则表达式
谢谢
★✩
最简单的方法是使用preg_replace()
:
$output = preg_replace('!<b>.*?</b>!s', '', $input);
末尾的s
是一个标志。 有关标志列表,请参见模式修饰符 。
s (PCRE_DOTALL)
如果设置了此修饰符,则模式中的点元字符将匹配所有字符,包括换行符。 没有它,换行符将被排除。 此修饰符等效于Perl的/ s修饰符。 否定类(例如[^ a])始终与换行符匹配,而与该修饰符的设置无关。
但是,一般而言,正则表达式对于查询和操作HTML或XML是一种较差的工具。 PHP具有许多内置的HTML解析器,作为一种可靠的解决方案,通常应使用这些解析器。
preg_replace("/<b>(.*?)<\/b>/ism","",$str);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.