如何在PHP中删除自定义标记和内容?

时间:2011-08-26 17:31:00

标签: php regex tags

说我是否在字符串中有这个标签:
[phpbay]{keyword}, 30, "", "", "", "", "", "", "", "", "", "", "", "", "2", "", "", ""[/phpbay]
我可以删除它和标签之间的内容吗?也许使用正则表达式?谢谢!

5 个答案:

答案 0 :(得分:1)

是的,这里的正则表达式可能是可行的:

$str = preg_replace('#\[phpbay][{\w},\s\d"]+\[/phpbay]#', "", $str);

如果它只包含示例中的字符,则只删除字符串中的“tag”。如果您只想删除它,如果它包含例如您的示例30或特定的{keyword}您必须使正则表达式更具体。

另请参阅https://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world了解可能有用的一些工具。

答案 1 :(得分:1)

$string = "[phpbay]blah blah blah [/phpbay]";
$stripped_string = preg_replace('~\[\/?phpbay\]~', '', $string);

如果我正确地读你的问题,并且只想留下“等等等等”的部分。

答案 2 :(得分:1)

此regEx将为您提供这两个标签之间的所有内容:

\[phpbay](.+)\[/phpbay]

答案 3 :(得分:1)

preg_replace('~\[phpbay\](.+?)\[/phpbay\]~','',$string);

答案 4 :(得分:-1)

我个人会使用str_replace或str_ireplace(case insensitive)

$Find = array("[phpbay]","[/phpbay]");
$Replace = array("<b>","</b>");
$Source = "[phpbay]Hello World[/phpbay]";


//Couldn't get any simpler...Replace [phpbay]Content[/phpbay] with <b>Content</b>

echo str_ireplace($Find,$Replace,$Source);

尝试并测试,它有效。

希望这有帮助!