это продолжение после чтения Как указать "Пробел или конец строки" . и "пробел или начало строки" ,
Оттуда оно означает, что нужно совместить слово во фразе. Я могу даже добавить несколько других решений. Но как только добавляется =
или "
, он перестает работать. Почему?
Я собираюсь выполнить поиск stackoverflow
и заменить его на OK
с помощью preg_replace()
preg_replace('/\bstackoverflow\b/', 'OK', $input_line)
input:
1: stackoverflow xxx
2: xxx stackoverflow xxx
3: xxx stackoverflow
result:
1: OK xxx
2: xxx OK xxx
3: xxx OK
теперь, если я меняю его на соответствие stackoverflow=""
, он перестает работать.
preg_replace('/\bstackoverflow=""\b/', 'OK', $input_line)
input:
1: stackoverflow="" xxx
2: xxx stackoverflow="" xxx
3: xxx stackoverflow=""
result:
1: stackoverflow="" xxx
2: xxx stackoverflow="" xxx
3: xxx stackoverflow=""
то же самое произойдет, если я буду использовать в своем регулярном выражении: /\bstackoverflow=\b/
или /\bstackoverflow"\b/
. Я уже проверил руководство, если =
или "
являются специальными символами, это не так. но я даже попробовал /\bstackoverflow\=\"\"\b/
Почему это?
в этом примере удаление \b
также решит его, но оно также будет соответствовать nostackoverflow=""not
, которое я не хочу.
я также пробовал альтернативы \b
, такие как [ ^]
и ( |^)
. Интересно, что [ ^]
(пробел или начало строки) не будет работать для начала строки, только пробел. Но ( |^)
будет отлично работать для обоих.