当前位置: 首页 > 知识库问答 >
问题:

如何捕获嵌套组?[副本]

石俊雄
2023-03-14

我有一个这样的目标字符串:(然而嵌套在实践中可能非常深)

{hi{how{are{you}}}}

预期结果将是:

小组:你好你好你好

我在c#regex中找不到任何东西可以这样做嵌套捕获。有可能吗?

编辑:

我想我把我的例子简化得太多了,这使答案模糊不清。我需要以递归的方式捕获,因为我需要括号内的内容:{test[{test2[content]}}

预期结果将是:

{test2[内容]}内容

共有2个答案

车辰龙
2023-03-14

我可以想到这个:

 string balh = "{hi {how {are {you}}}}";
 string[] foo = balh.Split(new char[] { '{', '}' }, StringSplitOptions.RemoveEmptyEntries);
 string output = string.Join(" ", foo);

这些组将位于foo数组中。

编辑:

我认为您正在寻找更详细的输入。我把问题搞错了:(

廖弘量
2023-03-14
{([^{}]+)

试试这个。见演示。抓取捕获物。

http://regex101.com/r/oE6jJ1/35

 类似资料:
  • 问题内容: 对于正则表达式应如何处理嵌套括号的捕获行为,是否存在已定义的行为?更具体地说,您是否可以合理地期望不同的引擎将在第一个位置捕获外部括号,并在随后的位置捕获嵌套的括号? 考虑以下PHP代码(使用PCRE正则表达式) 首先捕获整个带括号的表达式(我想测试),然后捕获内部的带括号的模式(“ want”和“ to”)。这是合乎逻辑的,但是我可以看到,首先捕获子括号然后再捕获整个模式的情况同样合

  • 如我们所知,要使用方法对数组进行展平 那么如何将这个数组平坦化为呢?

  • 我试图通过QRegularExpression获取不同捕获组中xml标记的所有属性。我使用与标记匹配的正则表达式,并设法获得包含属性值的捕获组,但使用量词,我只获得最后一个。 我用这个正则表达式: 我想通过这段文字得到“a”和“b”: 以下是代码: 和输出: 是否可以使用量词获取多个捕获组,或者让我使用在字符串文字上使用特定的正则表达式进行迭代?

  • 我正在使用React和Material ui并创建一个进度条。 我创建了以下类: 然后在我的组件中,我创建了一些来呈现进度条。这就是我想要实现的目标: 这是我的组件: 问题是如何将这些类传递给我的第一个嵌套div:,然后依次传递给下一个嵌套的? 我想我可以使用库,但是我不确定如何使用。 提前谢谢! 编辑:对于寻找此解决方案的任何人,以下是我如何使用条件实现此解决方案:

  • 模式的一部分可以用括号括起来 (...)。这称为“捕获组(capturing group)”。 这有两个影响: 它允许将匹配的一部分作为结果数组中的单独项。 如果我们将量词放在括号后,则它将括号视为一个整体。 示例 让我们看看在示例中的括号是如何工作的。 示例:gogogo 不带括号,模式 go+ 表示 g 字符,其后 o 重复一次或多次。例如 goooo 或 gooooooooo。 括号将字符组