【发布时间】:2017-07-13 08:02:39
【问题描述】:
我正在使用 java.util.regex.Pattern 类来匹配 Android 程序中的字符串。
if(Pattern.matches("\\{\\{.*?}}", element.getValue())) {
...
} else {
...
}
我收到以下错误。
Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 8
\{\{.*?}}
我正在使用 Android Studio 和 Open JDK。为了测试正则表达式,我在 Netbeans 中编写了一个简单的程序,它运行良好。 Netbeans 也使用 openjdk。
System.out.println(Pattern.matches("\\{\\{.*?}}", "{{hello:sdf}}"));
为什么正则表达式在android项目中出错?
【问题讨论】:
-
我认为你只需要使用
if (element.getValue().matches("\\{\\{.*?}}")),如果你还有问题,也可以尝试转义}s。 -
我注意到 pre api 版本 21
java.util.regex匹配器无法正常工作。最好还是使用com.google.code.regexp