在PHP中,我如何在自定义分隔符上进行拆分,但也可以转义分隔符


How can I split on a custom delimiter but escape the delimiter as well in PHP?

这里有一个字符串。

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中完成文本转换?

负查找(所有前面没有反斜杠的下划线),然后删除转义:

$string = "¯'''_(ツ)'_/¯";
$result = preg_replace('/(?<!'''')_/', ' ', $string);
$result = preg_replace('/''''(''''|_)/', '$1', $result);
echo $result;
// => Actual underscore looks like _