정규 표현 식 find 와 group 상세 설명
1612 단어 정규 표현 식
group () 방법 을 호출 하기 전에 모두 find 방법 을 사용 해 야 합 니 다.그렇지 않 으 면 잘못 보고 할 것 이다.사실 Matcher 류 를 보면 int [] groups 가 있 습 니 다.
사실 이 배열 은 group 에 맞 는 데 이 터 를 저장 하 는 것 입 니 다.먼저 정규 표현 식 을 알 고 몇 그룹 이 있 는 지 알 아야 한다.groupCount () 방법 을 통 해 얻 을 수 있 습 니 다. 사실은 간단 합 니 다. 대괄호 가 몇 개 있 으 면 몇 개 그룹 이 있 습 니 다.예 를 들 면:
@Test
public void testLookAhead() {
Pattern p = Pattern.compile("(\\w{2})(aa)");
Matcher m = p.matcher("12332aa438aaf");
Assert.assertEquals(2, m.groupCount());
}
대괄호 가 두 쌍 있 는데 그게 두 팀 이 야.그룹 (0) 을 한 그룹 으로 생각 하 는 세 그룹 이 있다 는 게시 물 을 보기 시작 했다. 사실 그룹 (0) 과 그룹 () 은 같다.그리고 group 소스 코드 를 보면
public String group(int group) {
if (first < 0)
throw new IllegalStateException("No match found");
if (group < 0 || group > groupCount())
throw new IndexOutOfBoundsException("No group " + group);
if ((groups[group*2] == -1) || (groups[group*2+1] == -1))
return null;
return getSubSequence(groups[group * 2], groups[group * 2 + 1]).toString();
}
group 방법 을 알 기 전에 반드시 find 를 해 야 합 니 다. 그렇지 않 으 면 Matcer 류 에서 first 의 초기 값 은 - 1 입 니 다. 그리고 find 방법 을 사용 하여 false 로 돌아 갈 때 first 또는 false 입 니 다. 모든 group 방법 은 find 방법 이 true 로 돌아 가 는 상황 에서 문자열 이 정규 표현 식 에 맞 아야 합 니 다.
그리고 group (1), group (2)...... group (n) 은 모두 group () 이 돌아 오 는 문자열 에서 일치 하 는 결과 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
awk 상용 명령awk 는 모든 입력 줄 을 하나의 기록 으로 인식 하고 그 줄 의 모든 단어 도 메 인 을 하나의 필드 로 인식 합 니 다. ARGC 명령 줄 에 awk 스 크 립 트 가 들 어 오 는 매개...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.