我想做一些自定义字符转义,这意味着我希望某些字符前面没有一些特殊字符,前提是它们之前没有那个特殊字符。我想我需要一个正则表达式替换。实现这一目标的最简单方法是什么?我尝试了一些消极的后视断言,但最终一无所获。
编辑:想象一下,我希望任何abc
字符都可以用 进行转义\
,所以debby
我应该de\b\by
在da\bby
我想做的时候得到d\a\b\by
。我想这个例子不是那么有创意,但我相信它解释了我的意思(尚未转义的转义字符)
EDIT2:嗯,我实际上想做的是把一串
([A-Za-z]+)/([A-Za-z]+)/([A-Za-z]+)
进入
([A-Za-z]+)\/([A-Za-z]+)\/([A-Za-z]+)
在第一个字符串中,正斜杠是某种分隔符(我希望以后会有更多,我也想同时 escape ) .
,,
我需要\
使用它来转义另一种(更简单的)模式。我试过(不确定第二个论点,但我相信这不是问题)
preg_replace("/(?<!\\)([\/])/", "\\$0", $string);
$string
在哪里([A-Za-z]+)/([A-Za-z]+)/([A-Za-z]+)
。没运气。
希望我现在说清楚了
解决方案:
preg_replace("/(?<!\\\\)[\/]/", "\\\\$0", $string);
在方括号中,我把要转义的字符。