我需要帮助来修复我的正则表达式,比如说有文字如下:
bla bla [bla1]something[/bla1] bla bla [bla2]something else[/bla2] bla bla bla
我希望删除bla1和bla2中的所有内容,包括那些标记。有人能帮助我吗?
谢谢。
答案 0 :(得分:1)
如果只需删除标签,请尝试:
$str = 'bla bla [bla1]something[/bla1] bla bla [bla2]something else[/bla2] bla bla bla';
$result = preg_replace('~\[([^\]]+)\].*?\[/\\1\]~', '', $str);
var_dump($result);
答案 1 :(得分:0)
使用正则表达式:
\[bla1\]\s*(((?!\[bla1\]|\[/bla1\]).)+)\s*\[/bla1\]
获取bla1和bla2之间的所有内容,然后你可以删除它
答案 2 :(得分:0)
你不需要正则表达式...我会使用strpos,explode和substr来实现这个功能。 进一步阅读:
http://php.net/manual/en/function.strpos.php
http://php.net/manual/en/function.substr.php
http://php.net/manual/en/function.explode.php
http://php.net/manual/en/function.str-replace.php
例如:
替换“[bla]”和[/ bla]为~bab~而不是爆炸~bab~。