Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 - Fatal编程技术网

Java正则表达式找不到匹配项错误

Java正则表达式找不到匹配项错误,java,regex,Java,Regex,下面的正则表达式给了我java.lang.IllegalStateException:找不到匹配项错误 String requestpattern = "^[A-Za-z]+ \\/+(\\w+)"; Pattern p = Pattern.compile(requestpattern); Matcher matcher = p.matcher(requeststring); return matcher.group(1); 其中请求字符串是 POST //upload/sendData.ht

下面的正则表达式给了我
java.lang.IllegalStateException:找不到匹配项
错误

String requestpattern = "^[A-Za-z]+ \\/+(\\w+)";
Pattern p = Pattern.compile(requestpattern);
Matcher matcher = p.matcher(requeststring);
return matcher.group(1);
其中请求字符串是

POST //upload/sendData.htm HTTP/1.1

任何帮助都将不胜感激。

您的表达式需要一个或多个字母,后跟空格,后跟一个或多个正斜杠,后跟一个或多个单词字符。您的测试字符串不匹配。触发异常是因为您试图访问不返回匹配项的匹配器上的组

您的测试字符串与“upload”后的斜杠匹配,因为斜杠与
\w
不匹配,后者只包含单词字符。单词字符是字母、数字和下划线。请参阅:

投掷:


没有尝试匹配。调用
group()
之前先调用
find()

输出:

true
upload

\w
(单词字符)是
[A-Za-z0-9.]
。它不匹配“
/
”、“
”或“
/
”(它们都出现在“
/
”)之后。我希望它以输出形式提供上载。我希望它以输出形式提供上载
public static void main(String[] args) {
    String requeststring = "POST //upload/sendData.htm HTTP/1.1";
    String requestpattern = "^[A-Za-z]+ \\/+(\\w+)";
    Pattern p = Pattern.compile(requestpattern);
    Matcher matcher = p.matcher(requeststring);
    System.out.println(matcher.find());
    System.out.println(matcher.group(1));
}
true
upload