由于转义序列错误,无法在Java中使用正则表达式,如何删除该错误

由于转义序列错误,无法在Java中使用正则表达式,如何删除该错误,java,regex,string,escaping,Java,Regex,String,Escaping,我有一个正则表达式: ^(([A-Z]:)|((\\|/){1,2}\w+)\$?)((\\|/)(\w[\w ]*.*))+\.([txt|exe]+)$ 但每次我将其分配给任何字符串时,Eclipse都会返回无效的转义序列,我插入了一个反斜杠,但它给出了相同的错误 如何在java中将上述表达式分配给字符串?请尝试以下操作: String regex = "^(([A-Z]:)|((\\\\|/){1,2}\\w+)\\$?)((\\\\|/)(\\w[\\w ]*.*))+\\.([txt

我有一个正则表达式:

^(([A-Z]:)|((\\|/){1,2}\w+)\$?)((\\|/)(\w[\w ]*.*))+\.([txt|exe]+)$
但每次我将其分配给任何字符串时,Eclipse都会返回无效的转义序列,我插入了一个反斜杠,但它给出了相同的错误

如何在java中将上述表达式分配给字符串?

请尝试以下操作:

String regex = "^(([A-Z]:)|((\\\\|/){1,2}\\w+)\\$?)((\\\\|/)(\\w[\\w ]*.*))+\\.([txt|exe]+)$";

反斜杠字符本身也需要转义,因此您将得到四个\字符。

将所有\\替换为\\\\。Java对正则表达式没有语言支持。因此,您需要\\从编译器获取反斜杠到字符串中。如果正则表达式应包含转义反斜杠,则需要\\\\

final String re = "^(([A-Z]:)|((\\\\|/){1,2}\\w+)\\$?)((\\\\|/)(\\w[\\w ]*.*))+\\.([txt|exe]+)$"