Android |正则表达式模式中的语法错误

时间:2012-11-22 09:02:31

标签: java android regex

我使用\\.(.*)}正则表达式模式搜索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)

有什么问题?

3 个答案:

答案 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();
        }

它奏效了。