我尝试从像(111,222,ttt,qwerty)
这样的字符串中获取
值列表
我尝试这种模式:
String area = "(111,222,ttt,qwerty)";
String pattern = "\\([([^,]),*]+\\)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(area);
System.out.println(m.groupCount());
ArrayList<String> values = new ArrayList<String>();
while(m.find()){
System.out.println("group="+m.group(1));
values.add(m.group());
}
但我发现组数为零。我错过了什么?
答案 0 :(得分:2)
假设您总是使用相同的字符串格式,您可以尝试:
String[] split = area.split("\\(|\\)|,");
答案 1 :(得分:0)
它应该是(...)+
而不是[...]+
(字符)。
答案 2 :(得分:0)
如果您只有包含英文字母和数字且没有空格的单词,
您可以使用以下regexp来实现此目的。
String pattern = "[a-zA-Z0-9]+";
它检查只包含数字和大写/小写英文字母的字符组。
答案 3 :(得分:0)
如果你知道只有一组括号()
String text = "aaa,bbb(111,222,ttt,qwerty),,,cc,,dd";
String[] parts = text.substring(text.indexOf('(')+1, text.indexOf(')')).split(",");
// parts = [ 111, 222, ttt, qwerty ]