我找不到解析以下形式的字符串的方法
"(info1) something-uninteresting [info2, info22] s.u. [info3] s.u. (info4, info5, info6)"
正确。我想要一个像这样的输出
Information Nr.0: info1
Information Nr.1: something-uninteresting
Information Nr.2: info2,
Information Nr.3: info22
Information Nr.4: s.u.
Information Nr.5: info3
Information Nr.6: s.u.
Information Nr.7: info4,
Information Nr.8: info5,
Information Nr.9: info6
但末尾没有逗号(例如,参见信息 nr.7 或 8)。
我目前的方法是
Pattern p = Pattern.compile("[^\\[(\\])][^\\])\\[(,]*[^\\])\\[(]");
我们将不胜感激每一个帮助
最佳答案
您需要做的就是收集所有分隔字符并查找没有它们的序列。此代码生成您想要的匹配:
String text = "(info1) something-uninteresting [info2, info22] s.u. [info3] s.u. (info4, info5, info6)";
Pattern p = Pattern.compile("[^\\[\\](),]+");
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println(m.group());
}
关于java - java中的复杂正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20252937/