15

次の正規表現でjava.lang.IllegalStateException: No match foundエラーが発生しました

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

どんな助けでも大歓迎です。

4

3 に答える 3

38

一致は試行されていません。呼び出すfind()前に呼び出しgroup()ます。

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
于 2013-05-02T18:40:06.100 に答える