我正在尝试匹配HTML文档中的特定字符串,并使用此正则表达式模式来抓取它:
Pattern somePattern = Pattern.compile("var json = ({\"r\":\"^d1\".*});");
但是当我尝试在运行时点击该代码时,我收到此错误:
FATAL EXCEPTION: Timer-0
java.util.regex.PatternSyntaxException: Syntax error U_REGEX_RULE_SYNTAX near index 13:
var json = ({"r":"^d1".*});
^
at com.ibm.icu4jni.regex.NativeRegEx.open(Native Method)
at java.util.regex.Pattern.compileImpl(Pattern.java:383)
at java.util.regex.Pattern.<init>(Pattern.java:341)
at java.util.regex.Pattern.compile(Pattern.java:317)
有谁能告诉我我做错了什么?
答案 0 :(得分:4)
我认为你需要逃避“{}”大括号字符,因为这些字符对正则表达式来说意味着特殊的东西。
这是表达“计数”的长期方式,因此.{0,}
相当于.* .{0,1}
相当于.?
而.{2,4}
表示至少两个但不多比前一场比赛的四场