如何基于正则表达式在java中拆分字符串?

时间:2013-10-09 20:06:27

标签: java

我的数据如下:

String s = "foo.com^null^[]"; 
String s1 = "bar.com^null^[{\"seen_first\":1357882827,\"seen_last\":1357882827,\"_id\":\"93.170.52.31\",\"exclude_from_publication\":false,\"locked\":false,\"agent\":\"domain_export\",\"web_published\":true,\"version\":\"IPv4\"},{\"seen_first\":1357882827,\"seen_last\":1357882827,\"_id\":\"93.170.52.21\",\"exclude_from_publication\":false,\"locked\":false,\"agent\":\"domain_export\",\"web_published\":true,\"version\":\"IPv4\"}]";

注意第三个字段..它可以是[]或json数组。 而我正试图解析这些领域..

这是我目前的尝试。

public static void check(String s) {
        String [] tokens = s.split("^");
        System.out.println(tokens[0]);
        System.out.println(tokens[1]);
        System.out.println(tokens[2]);


        if (tokens[2].trim().equals("[]")) {
            System.out.println("here--> " +true);

        }
        System.out.println("---------");


    }

我做错了什么?

1 个答案:

答案 0 :(得分:2)

^是正则表达式中的元字符,意思是“字符串的开头”。你需要逃脱它:

String [] tokens = s.split("\\^");