String s = "A..?-B^&';(,,,)G56.6C,,,M4788C..,,A1''";
String[] result = s.split("(?=[ABC])");
System.out.println(Arrays.toString(result));
输出:
[A..?-, B^&';(,,,)G56.6, C,,,M4788, C..,,, A1'']
请参阅上述案例中的分割。我正在尝试根据A, B or
C分隔字符串。如何使用ArrayList
将相同的拆分字符串转换为pattern matcher
?我无法弄清楚如何分组以下代码。
Pattern p = Pattern.compile("(?=[ABC])");
Matcher m = p.matcher(s);
List<String> matches = new ArrayList<>();
while (m.find()) {
matches.add(m.group());
}
另外假设我在第一次出现A, B or C
之前有几个字符,我想与ArrayList
中的第一个元素结合起来。 ,,一个..
感谢帮助。
答案 0 :(得分:4)
[ABC][^ABC]*
如果我没有省略任何适用于您提供的代码的边缘案例
对于额外的问题,你可以将(^[^ABC]*)*
添加到beggining,但这会使它变慢并且看起来不那么可读,更不用说它只适用于单行字符串来检查。我建议只是手动解析开始的字符,将其视为特殊情况。