嗨我想用“ - ”替换字符串中的所有“e”,它们不是反斜杠 所以“你好”应该是 - > “h-llo”但“h \ ello”应该是“你好”的任何想法,如果这可以用一个正则表达式吗?
答案 0 :(得分:5)
如果您需要组合两个正则表达式,则无法使用e
标志,因为替换是不同的。
preg_replace('/(\\\\?e)/e', "'\\1'=='e'?'-':'e'", $str);
(用法:http://www.ideone.com/S2uiS)
虽然没有必要使用正则表达式。 The strtr
function能够执行此类替换。
strtr($str, array('\\e' => 'e', 'e' => '-'));
答案 1 :(得分:3)
你可以使用negative lookbehind来确保e之前的字符不是反斜杠:
$string = preg_replace('/(?<!\\)e/', "-", $string);