从字符串中删除所有实例

时间:2013-01-14 02:54:16

标签: php regex

我有一个字符串:

[startstring]hello = guys[endstring] hello guys [startstring]jerk = you[endstring] man this is good!!!

我想删除[startstring][endstring]之间的所有匹配项,并删除字符串中的[startstring][endstring]。所以结果就是:

hello guys  man this is good!!!

,删除的内容将是:

[startstring] hello = guys [endstring] 你好伙计 [startstring] jerk =你[endtring] 男人这很好!!!

明白我的意思?

如上所示,我想在没有[startstring][endstring]内容的情况下回应结果。 :)

希望我大部分都清楚。 : - )

我将如何在PHP中完成此操作?这会包含某种RegEx吗?你能提供一个示例代码吗?

非常感谢! : - )

编辑:可以修改此代码或在某种程度上使用它来完成任务吗?

preg_match_all('/\[startstring\](.*?)\[endstring\]/s', $input, $matches);

1 个答案:

答案 0 :(得分:3)

要实现这一点,您只需更改方法名称,就应该使用preg_replace代替preg_match_all

preg_replace ($pattern, $replacement, $subject)  

搜索主题匹配模式并用替换替换它们。

代码

$input = "[startstring]hello = guys[endstring] hello guys [startstring]jerk = you[endstring] man this is good!!!";
$output = preg_replace('/\[startstring\](.*?)\[endstring\]/s', '', $input);

输出

  

你好男人这很好!!!