解析字符串的工作方式与预期不符

时间:2017-05-14 07:48:12

标签: java regex string

我试图通过“|”解析一个字符串符号:

  

1-20 | 21-40 | 41-60 | 61-80 | 81-100 | 101-120 | 121-131

String[] arr = text.split("|");

for(int i = 0; i <arr.length; i++){
    System.out.println( arr[i] );
}

它解析每个角色,比如

1
-
2
0
|
2
1
...

如何解析元素的源字符串,如:

  

1-20

4 个答案:

答案 0 :(得分:1)

|是Java正则表达式语法中的一个特殊字符,表示逻辑&#34;或&#34;两个匹配组之间。如果您想匹配|字面值,则需要将其转义:

String[] arr = text.split("\\|");

答案 1 :(得分:0)

|正则表达式中的特殊字符,您需要将其转义。像,

String[] arr = text.split("\\|");

答案 2 :(得分:0)

|是正则表达式中的元字符。逃避它:

String[] splitValues = text.split("\\|");

答案 3 :(得分:0)

使用"\\|"

转义管道
String[] arr = text.split("\\|");