当前位置: 代码迷 >> J2SE >> 正则表达式分组,该怎么处理
  详细解决方案

正则表达式分组,该怎么处理

热度:112   发布时间:2016-04-24 13:11:43.0
正则表达式分组
我想把字符串s="''','','1','682575','1H 24\'','True','1','0','0','1','0','0','1637954'";
中单引号内的内容取出来(包括空值),但是其中的1H 24\'总是取不出。
请大家帮助看看以下代码,哪里错?
s="''','','1','682575','1H 24\'','True','1','0','0','1','0','0','1637954'";
Pattern p = Pattern.compile("(?:')([^(',)]*)(?:',)");
Matcher m = p.matcher(s);
int i=0;
int end=0;
while (m.find()) {
System.out.println("第"+i+"个:"+m.group(1));
end=m.end();//取得最后匹配的索引
i++;
}
//提取最后一个
int b=end;
int e=s.indexOf("'", b+1);
System.out.println("最后一个是:"+s.substring(b+1,e));

------解决方案--------------------
请参考
Java code
    String s="''','','1','682575','1H 24\'','True','1','0','0','1','0','0','1637954'";     Pattern p = Pattern.compile("'([^,']*?)'");     Matcher m = p.matcher(s);     while(m.find()) {      System.out.println(m.group(1));    }