当我使用以下代码时,出现错误:
Matcher matcher = pattern.matcher("/Date\(\d+\)/");
错误是:
invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
我也尝试将方括号中的值更改为('/Date\(\d+\)/')
; 没有任何成功。
我如何避免此错误?
您需要\
像这样双重转义您的角色:\\
。
否则,您将String
被解释为您正试图逃脱(
。
与另一个圆括号和d相同。
实际上,您似乎在尝试在Pattern
此处初始化a ,同时pattern.matcher
引用您要Pattern
匹配的文本。
最后,请注意,在中Pattern
,转义字符需要两次转义,如下所示:
\\(\\d+\\)
另外,正如Rohit所说,Pattern
Java中的s不必被正斜杠(/
)包围。
实际上,如果您这样初始化Pattern
,它将Pattern
以文字正斜杠开头和结尾。
这是您可能想做的一个小例子:
// your input text
String myText = "Date(123)";
// your Pattern initialization
Pattern p = Pattern.compile("Date\\(\\d+\\)");
// your matcher initialization
Matcher m = p.matcher(myText);
// printing the output of the match...
System.out.println(m.find());
输出:
true
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句