【发布时间】:2019-04-02 08:20:47
【问题描述】:
我试图用另一个字符串替换一个字符串,但前提是它没有双引号或单引号。 我可以为双打做,但我也有问题要包括单打。
我将 preg_repalce 与数组一起使用,因为我还有其他规则可应用于字符串。
$text = <<<DATA
I love php
"I love php"
'I love php'
"I" love 'php'
DATA;
$text = preg_replace(
[
'/"[^"]*"(*SKIP)(*FAIL)|\blove\b/i'
],
[
'hate'
],
$text
);
echo $text;
输出是
I hate php -> OK
"I love php" -> OK
'I hate php' -> NOT OK
"I" hate 'php' -> OK
我的问题是单引号
【问题讨论】:
-
可能重复或可能有帮助:-stackoverflow.com/a/20767638/4248328
-
这不是那个问题的重复,因为这个问题是关于跳过失败的几个模式。