代码之家  ›  专栏  ›  技术社区  ›  R r

如何使正则表达式负后视镜消耗丢弃的文本?

  •  0
  • R r  · 技术社区  · 8 月前

    我的正则表达式是: /(?<!start )".*?"/ -它搜索文本中的引号(实际上是代码中的字符串文字)

    对我来说,它非常适合这些情况:

    1. 开始“文本” -不匹配
    2. 123 “文本” -比赛
    3. “文本” -比赛

    但在这种情况下,它不会:

    1. 开始“测试 “开始” 文本” -当我不想的时候,它会匹配的 “开始” )

    我如何使正则表达式否定后视镜使用丢弃的文本?

    1 回复  |  直到 8 月前
        1
  •  1
  •   aaa    8 月前

    您可以使用 SKIP FAIL 。如果你详细说明,还有其他方法:

    start\s+"[^"\r\n]*"(*SKIP)(*F)|"[^"\r\n]*"
    

    Also see


    或者:

    \bstart\s+"[^"\r\n]*"(*SKIP)(*F)|"[^"\r\n]*"
    

    See


    细节

    • \bstart\s+"[^"\r\n]*"(*SKIP)(*F) :首先匹配您不想要的内容,然后使用SKIP FAIL将其从结果中删除。

    • "[^"\r\n]*" 剩下的就是你想匹配的。