首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求援,一个简单正则表达式的写法

2011-11-21 
求助,一个简单正则表达式的写法我有一个字符串:A,B,a,b,c,C现在需要吧双引号中间的逗号去掉。但是又不确

求助,一个简单正则表达式的写法
我有一个字符串:A,B,"a,b,c",C
现在需要吧双引号中间的逗号去掉。但是又不确定双引号中间部分有几个逗号,因为这部分是金额。
我需要把这个串分割,双引号之间的逗号会影响分割。
高手给指点下谢谢。

[解决办法]

Java code
    public static void main(String[] args) {                        String s = "A,B, \"0, b, c\",C , \"4, 5, 6, 7,7, 9\"";                        String[] ss = s.split("\"[0-9A-Za-z,\\s]*\"");        int offset = 0;        int from = 0, to = 0;        StringBuffer sb = new StringBuffer();        int i = 0;        for (; i < ss.length; ++i) {            offset = s.indexOf(ss[i]);            from = offset + ss[i].length();            if (i == ss.length - 1) {                to = s.length();            } else {                to = s.indexOf(ss[i + 1], offset);            }                        String m = s.substring(from, to);            m = m.replaceAll(",", "");            m = m.replaceAll(" ", "");            sb.append(s.substring(offset, from));            sb.append(m);                    }                System.out.println(sb.toString());                            }
[解决办法]
呵呵

Java code
分隔用:",(?![^\"]*\"\\s*(?:,|$))"替换用:",(?=[^\"]*\"\\s*(?:,|$))"
[解决办法]
[Quote=引用:]
Java code
 public static void main(String[] args) throws IOException { String str="A,B,\"aaaaaaaaa,bbb,ccccc\",C"; System.out.println(str); String[] str3 = str.split("(? <!(,\"\\w{0,10})),(?!(\\w{0,10}\",))"); for(int i=0;i <str3.length;i++){ System.out.println(str3[i]); } } 

热点排行