【发布时间】:2013-07-19 12:02:08
【问题描述】:
我想匹配括号内的字符串,例如:
(i, j, k(1))
^^^^^^^^^^^^
字符串也可以包含右括号。如何在不编写解析器的情况下将其与 Java 中的正则表达式匹配,因为这是我项目的一小部分。谢谢!
编辑:
我想搜索一个字符串块并找到类似u(i, j, k)、u(i, j, k(1)) 或只是u(<anything within this paired parens>) 的内容,并将它们替换为__u%array(i, j, k) 和__u%array(i, j, k(1)) 用于我的Fortran 翻译应用程序。
【问题讨论】:
-
括号是否有最大“深度”,或者你能有任何深度吗?
-
听起来你不需要一个非常复杂的解析器...
-
你不能用正则表达式来做到这一点,至少不能用Java,因为正则表达式不是递归的。不过,PCRE 可以做到这一点。但是您应该使用/编写解析器。例如,您可以尝试parboiled。
-
@radai 我没有深度限制,但如果需要,我可以接受。
-
@LiDong 这可能是XY problem。你到底想要什么?判断字符串是否格式正确?里面的数据?什么?