사용자 이름을 정규식과 일치 시키려고합니다. 분할을 제안하지 마십시오. 그룹의Java 정규식이 그룹을 캡처하지 않습니다.
String input = "USERNAME=geo";
Pattern pat = Pattern.compile("USERNAME=(\\w+)");
Matcher mat = pat.matcher(input);
if(mat.find()) {
System.out.println(mat.group());
}
왜 찾지
geo
:
USERNAME=geo
여기 내 코드입니까? .group(1)
을 사용하면 사용자 이름을 찾습니다. 그러나 group
메서드는 USERNAME=geo
을 포함합니다. 왜?
'group()'은 항상 전체 문자열을 반환하지는 않습니다. – incarnate
나는 "전체 패턴"이라고 말하고자했습니다. 수정 됨. – polygenelubricants
실제로 'Matcher' javadoc에 따라 : http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html#cg * 그룹 영은 항상 전체 표현식을 나타냅니다. * – BalusC