Regex 带计数条件的正向前瞻

Regex 带计数条件的正向前瞻,regex,Regex,我找了一整天,只发现正则表达式: /.+?(?=\}\s*,)/ 这意味着:尽可能少地匹配任何字符,直到找到}(任何空格),而不计算}(任何空格) 但是,我需要它与计算}(任何空格)相匹配, 我的整个regexp看起来像: \s*MT_(F[0-9A-Z]+)\s+\{\s+@Override[\s\S]*?(?=\}\s*,) 并应选择: MT_F102 { @Override public F102 func1() { }

我找了一整天,只发现正则表达式:

/.+?(?=\}\s*,)/
这意味着:尽可能少地匹配任何字符,直到找到
}(任何空格)
,而不计算
}(任何空格)

但是,我需要它与计算
}(任何空格)相匹配,

我的整个regexp看起来像:

\s*MT_(F[0-9A-Z]+)\s+\{\s+@Override[\s\S]*?(?=\}\s*,)
并应选择:

  MT_F102 {
        @Override
        public F102 func1() {
        }

        @Override
        public String func2() {
        }
    }
请告诉我该怎么办


谢谢!:)

您可以删除前瞻并使用

/.+?}\s*,/
详细信息

  • +?
    -除换行符以外的任何1个或多个字符尽可能少
  • }
    -a
    }
    字符
  • \s*
    -0+空格
  • -逗号
在更大的正则表达式中实现它:

/\s*MT_(F[0-9A-Z]+)\s+\{\s+@Override[\s\S]*?\}\s*,/

请参阅。

因此,将
}\s*,
添加到消费模式,删除前瞻-
/.+?}\s*,/
您使用什么语言?感谢Wiktor提供正确答案。它很好用。我不知道如何将你的答案标记为正确。@MilanChe我发布了答案。下次,要让用户知道您的反馈,请在发送通知的用户名之前添加
@