81,095
社区成员
发帖
与我相关
我的任务
分享
public static String[] match(String original,int start, String begin, String end) {
Pattern pat = Pattern.compile(begin+"((?:.|\n|\r)*?)"+end); //? 跟在限定字符后,非贪婪模式
Matcher mat = pat.matcher(original);
mat.region(start, original.length());
if(mat.find()){
logger.info(mat.group(0) +" start:"+mat.start()+" end:"+mat.end()+" count:"+mat.groupCount());
return new String[]{mat.group(1),String.valueOf(mat.start()),String.valueOf(mat.end())};
}
return null;
}
public static void main(String[] args){
match(getTestStr(), 0, "<tr class=\"GridItem\" nowrap=\"nowrap\">", "</tr>");
}
Exception in thread "main" java.lang.StackOverflowError
at java.lang.Character.codePointAt(Character.java:2335)
at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344)
at java.util.regex.Pattern$Branch.match(Pattern.java:4114)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
at java.util.regex.Pattern$LazyLoop.match(Pattern.java:4357)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4078)