Это строка, в которой я пытаюсь заменить пробелы между словами «-».
$mystring = "Color red, Color blue, Color black"; $newstring = str_replace(' ', '-', $mystring);
Что я хочу достичь, используя функцию str_replace, является:
"Color-red, Color-blue, Color-black";
Но это возвращает:
"Color-red,-Color-blue,-Color-black";
Думаю, мне нужно условие, которое заменяет пробелы «не после запятой» или «между двумя словами». Но я понятия не имею. Любое предложение?
(?<!,)\s
Это использует отрицательный lookbehind для соответствия всем пробелам ( \s
), за которыми не следует a ,.
preg_replace("/(?<!,)\s/", '-', $mystring);
Играйте с регулярным выражением здесь .