Java Regex只是字符串的开头

时间:2013-08-08 22:24:16

标签: java regex string

我有一个巨大的字符串,我想与以下正则表达式匹配:

"\\s*<?.*?>\\s*<abc>[\\s\\S]*|\\s*<abc>[\\s\\S]*"

,如

myHugeString.matches("\\s*<?.*?>\\s*<abc>[\\s\\S]*|\\s*<abc>[\\s\\S]*"));

字符串很大,所以最后匹配[\ s \ S] *占用了大量的时间。我希望只匹配第一部分(\\s*<?.*?>\\s*<abc>),之后我不在乎任何事情。

最有效的方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

您可以在此处使用 Pattern Matcher 课程:

示例代码:

Pattern pattern = Pattern.compile("\\s*<?.*?>\\s*<abc>|\\s*<abc>");
Matcher matcher = pattern.matcher(yourString);

if (matcher.find()) {
    // Pattern found.
}

您甚至可以将正则表达式缩短为:

"(?:\\s*<?.*?>)?\\s*<abc>"