Java 转义序列不正确

Java 转义序列不正确,java,regex,Java,Regex,我有一个模式,我想匹配,但编译器说它是不正确的。我应该如何在java中创建scape序列 这是一种模式: String patter = "\/\/s.ytimg.com\/yts\/jsbin\/html5player-en_US-vfllxLx6Z\/html5player.js" 编译器抱怨,因为没有像\/这样的转义字符。常见的转义字符如下: \n换行符 \t选项卡 要在字符串中嵌入文字\,需要使用\\,例如: String pattern = "\\/\\/s.ytimg.com

我有一个模式,我想匹配,但编译器说它是不正确的。我应该如何在java中创建scape序列

这是一种模式:

String patter = "\/\/s.ytimg.com\/yts\/jsbin\/html5player-en_US-vfllxLx6Z\/html5player.js"

编译器抱怨,因为没有像
\/
这样的转义字符。常见的转义字符如下:

  • \n
    换行符
  • \t
    选项卡
要在字符串中嵌入文字
\
,需要使用
\\
,例如:

String pattern = "\\/\\/s.ytimg.com\\/yts\\/jsbin\\/html5player-en_US-vfllxLx6Z\\/html5player.js";
但事实上,我真的不明白你为什么需要
\
在那里。我认为您真正需要的可能是根本没有
\

String pattern = "//s.ytimg.com/yts/jsbin/html5player-en_US-vfllxLx6Z/html5player.js";

如果您想转义
\
,则需要使其像
\
一样加倍。你可以试试这个:

String patter = "\\/\\/s.ytimg.com\\/yts\\/jsbin\\/html5player-en_US-vfllxLx6Z\\/html5player.js";

在使用
\
的任何情况下,都需要复制它,因为
\
用于转义特殊序列,例如
\n
以创建换行符<代码>\\相当于实际url中的单个
\

对于您的实际URL,请使用以下内容:

String patter = "\\/\\/s.ytimg.com\\/yts\\/jsbin\\/html5player-en_US-vfllxLx6Z\\/html5player.js"
String patter = "//s.ytimg.com/yts/jsbin/html5player-en_US-vfllxLx6Z/html5player.js"
但是,如果您试图转义
/
字符,则这是不必要的。您只需使用以下功能:

String patter = "\\/\\/s.ytimg.com\\/yts\\/jsbin\\/html5player-en_US-vfllxLx6Z\\/html5player.js"
String patter = "//s.ytimg.com/yts/jsbin/html5player-en_US-vfllxLx6Z/html5player.js"

你确定你在
/
之前需要这些
\
/
在字符串或正则表达式中不是特别的)吗?是的,因为我正在寻找的模式就是这样构建的。在这种情况下,下面的每个答案都有正确的解决方案,所以当你的问题至少有15分钟的时间时,请随意选择其中一个(选择一个您最喜欢的字符)。另一方面,句号字符确实需要转义,因为它在未转义时匹配任何字符(换行符除外)。在本文中,我想您不必担心误报。