我使用\\.(.*)}
正则表达式模式搜索Android测试项目中的特定字符串。当我使用这个正则表达式来检查在线可用工具时,正则表达式看起来很好。但在Android测试项目中,我收到以下错误。
java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 7:
\.(.*)}
^
at java.util.regex.Pattern.compileImpl(Native Method)
at java.util.regex.Pattern.compile(Pattern.java:400)
at java.util.regex.Pattern.<init>(Pattern.java:383)
at java.util.regex.Pattern.compile(Pattern.java:367)
有什么问题?
答案 0 :(得分:9)
您可以尝试转义}
: -
"\\.(.*)\\}" // escaping `}` not needed in Java
我不知道为什么它在android
中不起作用,但在Java
中它可以正常工作without escaping
。
但是,如果您使用打开花括号,那么即使是在Java中,您也需要将其转义: -
"\\.(.*)\\{" // escaping `{` needed even in Java
答案 1 :(得分:5)
你需要逃脱}
,因为@Rohit Jain说:
String regex = "\\.(.*)\\}";
你的正则表达式在java中有效,但由于某些原因它在android上失败。
答案 2 :(得分:0)
我面临着同样的问题。我只是用
包围它 try{
}catch (PatternSyntaxException e) {
e.printStackTrace();
}
它奏效了。