Following regex giving me java.lang.IllegalStateException: No match found error
String requestpattern = \"^[A-Za-z]+ \\\\/+(\\\\w+)\";
Pattern p
The Matcher#group(int) throws :
IllegalStateException - If no match has yet been attempted, or if the
previous match operation failed.
Your expression requires one or more letters, followed by a space, followed by one or more forward slashes, followed by one or more word characters. Your test string doesn't match. The exception is triggered because you're trying to access a group on a matcher that returns no matches.
Your test string matches up to the slash after "upload", because the slash isn't matched by \w, which only includes word characters. Word characters are letters, digits, and underscores. See: http://www.regular-expressions.info/charclass.html#shorthand
No match has been attempted. Call find() before calling 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));
}
Output:
true
upload