Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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_Escaping_String Matching - Fatal编程技术网

Java 正则表达式-尝试匹配/\ \或换行符时,错误表示转义字符无效

Java 正则表达式-尝试匹配/\ \或换行符时,错误表示转义字符无效,java,regex,escaping,string-matching,Java,Regex,Escaping,String Matching,实际上,我正在尝试拆分以下任意一个字符串: / \ | , \n 下面是我使用的正则表达式,它给出了“无效转义字符”错误: String delims = "[\\\\\|\\/\\n,]+"; String[] list1 = str1.split(delims); 我尝试了更多的版本,试图得到正确的数量。正确的方法是什么 "[/\\|\n,\\\\]+" 其中一些你需要加倍逃跑 / matches / \\| matches | \n matches new line , matc

实际上,我正在尝试拆分以下任意一个字符串:

  • /
  • \
  • |
  • ,
  • \n
下面是我使用的正则表达式,它给出了“无效转义字符”错误:

String delims = "[\\\\\|\\/\\n,]+"; 
String[] list1 = str1.split(delims);
我尝试了更多的版本,试图得到正确的数量。正确的方法是什么

"[/\\|\n,\\\\]+"
其中一些你需要加倍逃跑

/ matches /
\\| matches |
\n matches new line
, matches ,
\\\\ matches \

要在正则表达式引擎中创建
\
文本,您需要用四个
\
字符串来编写它,这样您就有了一个
\
额外的字符串

"[\\\\\|\\/\\n,]+"; 
  1234^ 
      here
另外,您不需要在Java正则表达式引擎中转义
/
,也不需要将
\n
传递为
\\n
\n
文本也将被接受),您可以这样尝试

String delims = "[\\\\|/\n,]+"; 

查看字符串文本和有效的转义序列。
|
不需要在
[…]
中转义,这是可以接受的,但它会让人们感到困惑,并让他们怀疑是否必须在此上下文中使用它。