正则表达式抓住<strong>强大</strong>

时间:2015-01-15 09:25:44

标签: php regex

我需要一个正则表达式来捕获文本周围的< strong >< /strong > < strong > text < /strong >,但我想避免删除< strong >中间的文本和< /strong >

基本上是在

之后
preg_replace($expression, "", "<strong>STRONG</strong>"); 

只会在没有STRONG< strong >

的情况下给我< /strong >

我目前有:

<\w*>\w*<\/\w*>

然而;这样也能抓住标签上的文字。

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

<\/?strong>

命令:

preg_replace("/<\/?strong>/", "", "<strong>Hello</strong>");

Online demo

答案 1 :(得分:0)

您可以捕获您不想在捕获组中删除的文本:

<\w*>(\w*)</\w*>

并替换为$1以避免删除捕获的文本。

或者,您可以使用模式

</?\w*>

仅匹配开始和结束标记,中间没有文本。但是,这也会删除没有相应开/关标签的杂散标签。

答案 2 :(得分:0)

如果你只想剥开强力的开始和结束标签那么这应该足够了:

$out = preg_replace(array('$\\<\s?strong\s?\\>$si', '$\\</\s?strong\s?\\>$si'), '', "<strong>STRONG</strong>");