У меня есть строка здесь.
Actual_underscore_looks_like_\_
Вот пример кода, который должен заменить все подчеркивания в строке пробелами:
// Use underscores as a delimiter but allow for escaping underscores
$string = "Actual_underscore_looks_like_\_";
echo str_replace("_"," ",$string);
Тем не менее, это возвращает Actual underscore looks like \
, я хочу Actual underscore looks like _
, Кроме того, я мог бы хотеть показать ¯\_(ツ)_/¯
, Для этого моя входная строка может быть:
¯\\\_(ツ)\_/¯
Как я могу выполнить это преобразование текста в PHP?
Отрицательный взгляд позади (все подчеркивания, которым не предшествует обратный слеш), затем удалите escape:
$string = "¯\\\_(ツ)\_/¯";
$result = preg_replace('/(?<!\\\\)_/', ' ', $string);
$result = preg_replace('/\\\\(\\\\|_)/', '$1', $result);
echo $result;
// => Actual underscore looks like _
Других решений пока нет …