Я пытаюсь заменить одну строку другой, но только если в ней нет двойных или одинарных кавычек.Я могу сделать это для двойников, но у меня есть проблемы с включением синглов.
Я использую 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
моя проблема заключается в одинарных кавычках