说我是否在字符串中有这个标签:
[phpbay]{keyword}, 30, "", "", "", "", "", "", "", "", "", "", "", "", "2", "", "", ""[/phpbay]
我可以删除它和标签之间的内容吗?也许使用正则表达式?谢谢!
答案 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);
尝试并测试,它有效。
希望这有帮助!