读书人

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

发布时间: 2011-11-21 22:53:08 作者: rapoo

求助,一个简单正则表达式的写法
我有一个字符串: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]); } } 

读书人网 >J2SE开发

热点推荐