转义序列不正确

时间:2014-09-06 18:31:05

标签: java regex

我有一个我想要匹配的模式,但编译器说它不正确。我该如何纠正java中的scape序列?

这是模式:

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

3 个答案:

答案 0 :(得分:1)

编译器抱怨因为没有\/这样的转义字符。常见的转义字符是这些:

  • \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";

答案 1 :(得分:0)

如果您想要转义\,则需要将其设为\\。你可以试试这个:

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

答案 2 :(得分:0)

在使用\的任何情况下,都需要重复,因为\用于转义特殊序列,例如\n来创建换行符。 \\相当于实际网址中的单个\

对于您的实际网址,请使用以下网址:

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"