在条件下替换字符串(正则表达式?)

时间:2016-03-09 15:55:38

标签: php regex replace

我正在寻找搜索和替换的解决方案。 我需要在特定字符串之后添加一个空格,但只有在没有的情况下才会添加。正则表达式将为我提前。有人想帮帮我吗?

例如

Lorem ipsum[something]abcdefg[/something]dolor sit amet

需要替换为

Lorem ipsum[something]abcdefg[/something] dolor sit amet

所以,我需要搜索[/something],如果没有空格,那么请替换...

1 个答案:

答案 0 :(得分:2)

正则表达式可以是:

/(\[\/something\])(?!\s)/gmi

您可以在此测试并了解整个解释:

https://regex101.com/r/pC4pQ3/1

如果你看到第一个是目标,因为不是空格,但第二个是相反的。

要在PHP中应用此功能,您必须使用 preg_replace() 。像这样:

$string = "Lorem ipsum[something]abcdefg[/something]dolor sit amet";
echo preg_replace("/(\[\/something\])(?!\s)/", "\1 ", $string);
// result: "Lorem ipsum[something]abcdefg[/something] dolor sit amet"