正则表达式捕获不在括号内的所有内容

时间:2017-03-19 21:04:53

标签: java regex

我正在使用Java Regex,并尝试使用Regex来捕获未放在括号之间的数据,但是在前瞻和后观方面遇到了一些麻烦。这是我到目前为止所做的:(?<!\()([A-Z][a-z]?[1-9]*)(?![1-9])(?!\))

但是当括号被其他字母填充时,它不起作用。例如,我在这个字符串中搜索:
Zn(C2H3Na4O2)2Pb4K3

正则表达式理论上应该捕获Zn, Pb4, and K3但是根据regex101我得到Zn, He, Na4, Pb4, and K3.有没有办法让正则表达式向前看到有一个紧密括号的地方,只要有它之前不是一个开括号吗?

其他一些例子:
(NH4)PO3应输出P and O3 - 对于此示例,当前的正则表达式有效 C3H6O2应输出C3, H6, and O2
K4(H3Mn4)3O5(NH4)2只应输出K4 and O5。现在,正则表达式输出K4, M, and O5.

0 个答案:

没有答案