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



我有这个正则表达式:

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

但是每次我将其分配给任何字符串时,Eclipse 都会返回无效的转义序列,我插入了一个反斜杠,但它给了我相同的错误。

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

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

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

尝试以下操作:

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

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

最新更新