Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式特殊字符“|&引用;Java中的转义_Java_Regex_String_Split_Special Characters - Fatal编程技术网

正则表达式特殊字符“|&引用;Java中的转义

正则表达式特殊字符“|&引用;Java中的转义,java,regex,string,split,special-characters,Java,Regex,String,Split,Special Characters,我正在尝试拆分一个字符串,如:abc | aa|| 使用正则string.split时,需要提供正则表达式。 我试着做到以下几点: string.split(“|”) string.split(“\\\”) string.split(“/|”) string.split(“\Q |\E”) 他们中没有人工作 有人知道如何使用吗?需要使用双反斜杠,因为反斜杠也是一个特殊字符。所以你需要转义转义字符。i、 e\ \|我不知道你是怎么尝试的,但是 public static void main(Str

我正在尝试拆分一个字符串,如:abc | aa|| 使用正则string.split时,需要提供正则表达式。 我试着做到以下几点: string.split(“|”) string.split(“\\\”) string.split(“/|”) string.split(“\Q |\E”)

他们中没有人工作


有人知道如何使用吗?

需要使用双反斜杠,因为反斜杠也是一个特殊字符。所以你需要转义转义字符。i、 e\
\|我不知道你是怎么尝试的,但是

public static void main(String[] args) {
    String a= "abc|aa||";
    String split = Pattern.quote("|");
    System.out.println(split);
    System.out.println(Arrays.toString(a.split(split)));
}
打印出来

\Q|\E
[abc, aa]
有效地在
|
上拆分。
\Q\E
是一个正则表达式引号。其中的任何内容都将作为文字模式进行匹配



|
是一个特殊字符,因此需要使用斜杠对其进行转义。试用


string.split(\\\\;”
是正则表达式的特殊字符,因此必须对其进行转义,例如
\\\\\\

反斜杠
\
在Java中是一个特殊字符,因此也必须对其进行转义

因此,必须执行以下操作才能达到预期效果

string.split("\\|")

以下所有模式都可以拆分:
“\\Q|\\E”
“\\\\\”
“[|]”
当然后两种模式更可取

试试
字符串。拆分(\\\\\”
abc | aa | |。拆分(“\Q |\E”)
应该可以。谢谢!是否有一种方法,我也将获得空的空间?因此,对于上面的字符串,我将得到:[abc,aa,]?另一件事,当我尝试行时:System.out.println(Arrays.toString(a.split(“\Q |\E”));我得到一个错误。。。。这是为什么?@ron您可能还没有导入
数组
类。为了获得空间,我认为有一个重载的
split
方法可以为您做到这一点。我现在不能查。我再打给你。
string.split("\\|")