为什么管道符号在下面提到的代码段中被转义两次?

时间:2015-11-09 13:48:20

标签: java regex string

为什么管道符号在下面的代码中两次转义。 "\|"也是regex吗?如果是这样,那是什么意思?

String str[], str1 = "This|is|a|sentence"
str = str1.split("\\|");

2 个答案:

答案 0 :(得分:3)

  

为什么管道符号在下面提到的代码段中被转义两次?

不是,但你认为它是可以理解的。

正则表达式模式为\|,因为|表示替换,除非您将其转义。

因为我们在字符串文字中编写该模式,并且\在字符串文字中很特殊,所以我们必须使用\来转义 it 。我们得到"\\|"

答案 1 :(得分:0)

\\|表示文字管道符号|

如果它没有被转义,它就是交替运算符,所以你要拆分空字符串或空字符串,这样你就可以得到一个单独字符的数组。

如果要将\放在Java字符串文字中,则必须自行转义它,因为\用于标记控件字符,如\n(unix new line) )。

如果您编写"\|",您的代码甚至无法编译,因为|不是控制字符。您可以在此处查看所有控制字符:What are all the escape characters in Java?