php - 根据条件替换字符串(正则表达式?)

标签 php regex replace

我正在寻找搜索和替换的解决方案。 我需要在特定字符串后添加一个空格但前提是还没有空格。正则表达式对我来说是高级的。有人愿意帮我吗?

例如

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

需要替换为

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

所以,我需要搜索 [/something],如果它后面没有空格,则进行替换...

最佳答案

正则表达式可以是这样的:

/(\[\/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"

关于php - 根据条件替换字符串(正则表达式?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35896407/

相关文章:

PHP 将日期时间转换为秒

c# - .NET 正则表达式替换单行匹配未知字符

swift - 使用 Swift 随机替换

java - 替换java字符串中的字符

php - 如何仅通过 xml 为少数类别设置默认产品排序方向(asc/desc)

php - MySQLiQuery_Exception' 消息'非法混合排序规则 (latin1_swedish_ci,IMPLICIT) 和 (utf8_general_ci,COERCIBLE) - 使用 PHP5

PHP json_encode JSON_PRETTY_PRINT : how to print a different format?

JavaScript RegExp 在 IE11 中不工作,在 Chrome 中工作

php - php中使用正则表达式的日期格式

php - 在 PHP 中将字符串转换为整数的最快方法