正则表达式用于匹配花括号 [英] Regex for matching curly braces

查看:562
本文介绍了正则表达式用于匹配花括号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一个仅当所有花括号正确匹配时才匹配的正则表达式。可以嵌套匹配的花括号。

I'm, looking for a regular expression that will match only when all curly braces properly match. Matching braces can be nested.

例如。
匹配项

Ex. Matches


  • 你好{0} {}

  • 你好,关注以下{0 }:{{Object1}},{{Object2}}

  • 测试{{1} {{2} {{3} {{4}}}}}

不比赛


  • } {你好{0}

  • {{}您好,以下{0}:{{Object1}},{{Object2}}

  • Test {{1} {{ 2} {{3} {{4} {}

推荐答案

在.NET中,您可以使用平衡组进行计数,

In .NET you can use balancing groups to count, which allows you to solve such problems.

例如,确保 {} 是平衡的,您可以使用以下表达式:

For example make sure { and } are balanced you could use an expression like:

(?x)^
[^{}]*
(?: 
  (?:
    (?'open' \{ )       # open++
    [^{}]*
  )+
  (?:
    (?'close-open' \} ) # open--, only if open > 0
    [^{}]*
  )+
)*
(?(open) (?!) )         # fail if open != 0
$

这篇关于正则表达式用于匹配花括号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆