java中按句点和引号拆分字符串
一个非常愚蠢的问题,我知道“和.都是特殊字符,但为什么在使用split()函数时会有区别呢 这是代码java中按句点和引号拆分字符串,java,string,split,Java,String,Split,一个非常愚蠢的问题,我知道“和.都是特殊字符,但为什么在使用split()函数时会有区别呢 这是代码 String.split("\""); String.split("\\."); 它们都可以工作,但为什么第一行代码中只有一个“\”,第二行代码中只有两个“\ 编辑: 如果我这样做会发生什么 String.split("\\""); 结果会和你的一样吗 String.split("\""); 在第一个示例中,您转义的是“(这不是一个特殊的正则表达式字符,因此
String.split("\"");
String.split("\\.");
它们都可以工作,但为什么第一行代码中只有一个“\”,第二行代码中只有两个“\
编辑:
如果我这样做会发生什么
String.split("\\"");
结果会和你的一样吗
String.split("\"");
在第一个示例中,您转义的是
“
(这不是一个特殊的正则表达式字符,因此它与string.split(character.toString(“”);
)-也就是说,您需要转义”
以将“
放入字符串中,您也可以编写string.split(“+”)代码>。在第二个示例中,您正在转义
(这是一个特殊的正则表达式字符)。因此,\
被转义,并等价于Pattern.compile(“.”,Pattern.LITERAL).split(string)代码>已在此处回答
java.lang.String.split
在正则表达式上拆分,正则表达式中的
表示“任何字符”。在java中使用split函数时,还应注意一些符号的含义不仅仅是简单字符,它还可能表示正则表达式的特殊命令
For string For regex
"\"" " <- noting special from regex point of view, will process all (")
"." . <- Yeh, special character, I will process all characters
"\\." \. <- noting special from regex point of view, will process all (.)
正则表达式字符串的
“\”“我知道”和.”都是特殊字符:不,至少不在同一上下文中。“
在Java的字符串文字语法中是特殊的,但在正则表达式中没有特殊之处<代码>
在正则表达式方面是特殊的,但在Java的字符串文本语法中不是。只需打印出这两个字符串,您就可以简单地了解其含义:第一行中的参数长度为1(唯一的字符为),第二行中的参数长度为2(第一个字符为\而第二个字符为句点)。正则表达式匹配器需要\位于字符串中,这样它就不会将句点视为特殊句点。