我有一个我觉得很烦人的案例。
我有一些json,我需要删除单个反斜杠的所有出现,但每当我有两个或更多的反斜杠相邻时,我想保持它们在那里
所以对于下面的例子:
{"status": "hi <a href=\"url.com\" "
我想删除三个出现的反斜杠,但不触及三个反斜杠相邻的两个地方。
所以,使用visual studio代码ctrl+H regex函数,我想出了这个regex,在那里我匹配所有没有反斜杠的反斜杠,像这样:
[^\]\[^\]
,这正确地抓住了单个反斜杠,但是,它也匹配了字符的左侧和右侧的反斜杠。这意味着它匹配:
{"
那么,我可以以某种方式使用相同的模式,但从匹配中排除与反斜杠相邻的两个字符吗?
问好您可以使用negative lookbehind
和negative lookahead
来实现这一点。
/(?<!\)\(?!\)/g
(?<!\)
仅表示在此点之前不存在。
(?!\)
表示在此点之后不应该有。
你可以在这里试一试。