Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式仅以字符串开头_Java_Regex_String - Fatal编程技术网

Java正则表达式仅以字符串开头

Java正则表达式仅以字符串开头,java,regex,string,Java,Regex,String,我有一个巨大的字符串,我想与以下正则表达式匹配: "\\s*<?.*?>\\s*<abc>[\\s\\S]*|\\s*<abc>[\\s\\S]*" “\\s*\\s*[\\s\\s]*\\\s*[\\s\\s]*” 如 myHugeString.matches(“\\s*\\s*[\\s\\s]*.\\s*[\\s\\s]*”); 字符串非常庞大,因此在末尾匹配[\s\s]*会占用大量时间。我希望只匹配第一部分(\\s*\\s*),之后我不关心任何事情

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

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

myHugeString.matches(“\\s*\\s*[\\s\\s]*.\\s*[\\s\\s]*”);
字符串非常庞大,因此在末尾匹配[\s\s]*会占用大量时间。我希望只匹配第一部分
(\\s*\\s*)
,之后我不关心任何事情

最有效的方法是什么

谢谢

您可以在此处使用Pattern和Matcher类:

  • 通过使用编译正则表达式来创建对象
  • 然后使用在字符串上应用该
    模式
    对象来创建一个对象
  • 然后使用方法找到您感兴趣的模式
示例代码:

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

if (matcher.find()) {
    // Pattern found.
}
Pattern=Pattern.compile(“\\s*\\s*\\s*”);
Matcher-Matcher=pattern.Matcher(您的字符串);
if(matcher.find()){
//找到模式。
}
您甚至可以将正则表达式模式缩短为:

"(?:\\s*<?.*?>)?\\s*<abc>"
“(?:\\s*)?\\s*”
您可以在此处使用模式和匹配器类:

  • 通过使用编译正则表达式来创建对象
  • 然后使用在字符串上应用该
    模式
    对象来创建一个对象
  • 然后使用方法找到您感兴趣的模式
示例代码:

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

if (matcher.find()) {
    // Pattern found.
}
Pattern=Pattern.compile(“\\s*\\s*\\s*”);
Matcher-Matcher=pattern.Matcher(您的字符串);
if(matcher.find()){
//找到模式。
}
您甚至可以将正则表达式模式缩短为:

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