在java中用正则表达式拆分

时间:2013-12-10 10:27:22

标签: java regex

我想用正则表达式java拆分字符串 例如:

String: (5,4,a)

我想在下面拆分两个字符串:

5 
4,a

如果逗号字符之后字符是数字分割
如果字符是逗号字符后面的字母不分割

我使用

[-|,]\\s*[^\\w] 

但没有权利

3 个答案:

答案 0 :(得分:3)

通常最好不要提出一个复杂的正则表达式“做到这一切”。只需在逗号上拆分,然后查看最后一个元素是否为数字,如果不是,您仍然可以再次连接第二个和第三个字段。

答案 1 :(得分:2)

您可以使用正向前瞻 - 一个请求,告诉正则表达式引擎某个角色必须在那里,但不应该作为匹配的一部分使用:

"[()]|[,-](?=\\d)"

应该完成这项工作(demo on ideone)。在上面,(?=\\d)表示“仅当后跟一个数字”,而不计算该数字作为比赛的一部分。

答案 2 :(得分:1)

试试这个:

    String str = "5,4,c";
    // Just split the string into two parts
    String[] split = str.split(",", 2);

    System.out.println(split[0]);
    System.out.println(split[1]);