1

我正在尝试在字符串中查找类似数组的事件。

例如对于这个文本

Ut ac nisi eget est tempus mattis。Sed et dapibus lorem。Suspendisse laoreet ante arcu, sed ornare a(diam)[test] ornare eget。Nunc a(pulvinar)[anoter][test] porttitor accumsan。Donec quis accumsan enim.Ut sed sem posuere, a(pharetra)[another[nested][a(test)]] sapien a, molestie odio。Donec euismod, lectus et sollicitudin condimentum, felis dolor feugiat arcu

我想匹配粗体部分。

我走了这么远:

\a\((.*?)\)(\[.*?])+

这匹配前两个,但最后一个测试缺少最后一个右括号。(如果我再次嵌套 2 个右括号会丢失)

结果:

a(diam)[test]
a(pulvinar)[anoter][test]
a(pharetra)[another[nested][a(test)] <--- last closing bracket missing.

有什么帮助吗?

4

1 回答 1

1

如何将嵌套结构嵌入到正则表达式中,如下所示:

a\(\w+\)(\[.+?(\[.+\])*\])+
              ---------  
              embeded nesting

编辑:

(a\(\w+\)(?:\[.+?(?:\[.+\])*\])+)

添加了非捕获符号以减轻“未定义”捕获。

于 2013-10-08T13:23:20.053 回答