Заменить дефис только в окружении пробела тире - PullRequest
0 голосов
/ 12 октября 2019

У меня есть вопрос, касающийся замены дефисов тире с помощью str_replace.

Я пытаюсь заменить дефисы, окруженные пробелами, как в «слово - слово», тире, в результате получается «слово - слово». Поэтому я использую str_replace:

if(strpos($notes," - ") !== false) { 
       $notes = str_replace(" - "," – ",$notes) 
};

Это прекрасно работает.

Но в $ notes также может быть текст типа «слово-слово». Обратите внимание на пропущенные пробелы между словами и дефисом. str_replace непреднамеренно заменяет этот дефис, что приводит к слову «слово-слово».

Можно ли заменить дефисы, такие как "слово-слово", только пробелами вокруг дефиса?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 12 октября 2019

вы можете явно использовать пробелы вокруг символа, который хотите заменить, вот так, и вам также не нужно использовать оператор if с этим.

$str = str_replace(" - ", " – ", $notes);
...