我正在寻找一个正则表达式来分割包含 () 的字符串。
这就是我所拥有的
String regex = "(?=\\()|()"
第一部分是正确的,因此它以“(”开头。我需要第二部分以“)”结尾,但如果“)”后面有数字,则需要以数字结尾。
示例 Fe2(CH3)2(CH2O)(CH3)
这需要分成
Fe2
(CH3)2
(CH2O)
(CH3)
“)”后面的数字可以是一位数,也可以是两位数。
我还需要将 Fe(C5H5)2O4(CH3) 拆分为
铁
(C5H5)2
O4
(CH3)
最佳答案
更新了新逻辑:匹配一些字母字符或括号内的内容,后跟可选数字。
final String f = "Fe2(CH3)2O4(CH2O)2(CH3)";
final Matcher m = Pattern.compile("(\\p{L}+|\\(.*?\\))\\d*").matcher(f);
while (m.find()) System.out.println(m.group());
关于java - 根据条件结束正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776971/