小编Pan*_*czo的帖子

正则表达式匹配两个{}之间的所有内容

我在这里看到了不同的答案,但不幸的是,这些答案都不适合我的情况.所以我希望你不介意.

所以我需要匹配两个大括号{}之间的所有内容,除了匹配以@开头且没有这些大括号的情况,例如:

  1. "这是一个超级文本{ match_this }"
  2. "{ match_this }"
  3. "这是另一个例子@ {deal_with_it}"

这是我的测试字符串,1,2,3有效,而最后一个不应该是:

  1   {eww}
  2   r23r23{fetwe}
  3   #{d2dded}
  4   @{d2dded}
Run Code Online (Sandbox Code Playgroud)

我正在尝试:

(?<=[^@]\{)[^\}]*(?=\})
Run Code Online (Sandbox Code Playgroud)

然后只有第2和第3个选项匹配(没有第一个) https://regex101.com/r/qRInUf/2/

然后我在尝试:

\{(.*?)\} or [^@]\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都无法匹配1,2,3值 https://regex101.com/r/uYRtLD/1

在此先感谢您的任何建议.

编辑:这是为java.

java regex regex-negation regex-group regex-lookarounds

4
推荐指数
1
解决办法
125
查看次数