繁体   English   中英

删除中间的文字

[英]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.

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