Java将字符串拆分为" ^ | ^"

时间:2015-11-13 06:01:14

标签: java regex

我有以下示例数据:

***
100
101
102
103
104

我想分开" ^ | ^"所以结果将是:

String a = "***^|^100^|^101^|^102^|^103^|^104^|^105^|^106^|^107^|^108^|^";
String [] split ;

split = a.split("^|^");
for(int i=0; i<split.length; i++)
{
        System.out.println(split[i]);
}

以下是我的示例代码,但未能获得预期的结果,我是否误解了分割模式?

Right Click -> Advanced -> Remove Mapping

3 个答案:

答案 0 :(得分:12)

^|都是您需要逃脱的特殊聊天。

split = a.split("\\^\\|\\^");

答案 1 :(得分:12)

使用Pattern.quote()将所有元字符视为字符串文字/文字模式。 ^|在正则表达式中具有特殊含义。

这应该有效:

public static void main(String[] args) throws Exception {
    String s = "***^|^100^|^101^|^102^|^103^|^104^|^";
    String pattern = Pattern.quote("^|^");
    System.out.println(Arrays.toString(s.split(pattern)));

}

O / P:

[***, 100, 101, 102, 103, 104]

答案 2 :(得分:-2)

请检查

String str = "***^|^100^|^101^|^102^|^103^|^104^|^";
String arr[] = str.split("\\^\\|\\^");
System.out.println(arr.length);