PHP - 删除粗体文本

时间:2012-08-06 22:23:22

标签: php regex text

我有一些文字:This is <b>an</b> example <b>text</b>.

如何删除粗体标记内的所有文本,因此应输出:

This is example.

2 个答案:

答案 0 :(得分:3)

使用 preg_replace()
如果您想删除一个简单标记及其中的文本:

<?php 
$string = 'This is <b>an</b> example <b>text</b>';
echo preg_replace('/(<b>.+?)+(<\/b>)/i', '', $string); 

<强>输出:
这是示例


并使用正则表达式(class,id),间隔错误和反分析:

<?php
$string = 'This is <b class="c1" id=\'c2\'>an</b> example <b>text</B >'; 
echo preg_replace('@<(\w+)\b.*?>.*?</\1.*?>@si', '', $string); 

<强>输出:
这是示例

答案 1 :(得分:2)

简单的解决方案:

echo str_replace(array('<b>', '</b>'), '', 'This is <b>an</b> example <b>text</b>');

可能有更好的技巧。在这里,我只是用空字符替换数组中序列的每个出现。有关详细信息,请参阅php.net。他们有一个类似的例子:

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

编辑。我错过了正则表达式标签,但正则表达式为此目的有点过头了?