某个字符的正则表达式匹配,该字符不被两个特定的字符包围,被排除在匹配之外

  • 本文关键字:字符 包围 排除 正则表达式 两个 regex
  • 更新时间 :
  • 英文 :


我有一个我觉得很烦人的案例。

我有一些json,我需要删除单个反斜杠的所有出现,但每当我有两个或更多的反斜杠相邻时,我想保持它们在那里

所以对于下面的例子:

{"status": "hi <a href=\"url.com\" "

我想删除三个出现的反斜杠,但不触及三个反斜杠相邻的两个地方。

所以,使用visual studio代码ctrl+H regex函数,我想出了这个regex,在那里我匹配所有没有反斜杠的反斜杠,像这样:

[^\]\[^\]

,这正确地抓住了单个反斜杠,但是,它也匹配了字符的左侧和右侧的反斜杠。这意味着它匹配:

{"

那么,我可以以某种方式使用相同的模式,但从匹配中排除与反斜杠相邻的两个字符吗?

问好

您可以使用negative lookbehindnegative lookahead来实现这一点。

/(?<!\)\(?!\)/g

(?<!\)仅表示在此点之前不存在

(?!\)表示在此点之后不应该有

你可以在这里试一试。

最新更新