正则表达式匹配数组表示法

时间:2013-10-08 13:14:28

标签: javascript regex

我试图在字符串中找到类似数组的事件。

例如本文

Ut ac nisi eget est tempus mattis。 Sed et dapibus lorem。 Suspendisse laoreet ante arcu,sed ornare a(diam)[test] orn​​are eget。 Nunc a(pulvinar)[anoter] [test] porttitor accumsan。 Donec quis accumsan enim.Ut sed sem posuere, a(pharetra)[另一个[嵌套] [a(测试)]] 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.

任何帮助?

1 个答案:

答案 0 :(得分:1)

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

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

编辑:

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

添加了非捕获符号以缓解“未定义”捕获。