это продолжение после чтения Как указать "Пробел или конец строки" . и "пробел или начало строки" ,
Оттуда оно означает, что нужно совместить слово во фразе. Я могу даже добавить несколько других решений. Но как только добавляется = или ", он перестает работать. Почему?
Я собираюсь выполнить поиск 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, такие как [ ^] и ( |^). Интересно, что [ ^] (пробел или начало строки) не будет работать для начала строки, только пробел. Но ( |^) будет отлично работать для обоих.