2009-06-18 5 views
1

일부 String 일치를 수행하는 Java 프로그램이 있습니다. 문자열에 \d+x\d+과 일치하는 것을 찾고 있습니다. 이 작업은 PatternMatcher 클래스를 사용하여 작동합니다. 그러나 내가 찾은 String 부분을 구문 분석하려면 Matcher.find()Matcher.group()에서 수동으로 String을 파싱해야합니다. 어떻게하면 알 수 있습니까 Pattern(\d+)x(\d+)의 형태로 무언가를 찾고 Matcher 그룹을 개별적으로 돌려받을 수 있습니까? 그래서 "1x23"문자열 대신 "1"및 "23"문자열 두 개를 가져오고 싶습니다.Matcher에서 Java로 여러 regex 그룹을 얻는 방법은 무엇입니까?

답변

8

Matcher.group()이 아닌 Matcher.group(int)을 사용하십시오.
주어진 정규식 및 입력 값을 사용하면 group(1)이 "1"이어야하고 group(2)이 "23"이어야합니다.

+0

나열된 두 번째 패턴이 필요하다는 점에 유의하십시오. (\ d +) x (\ d +) 그러면 정규식이 그룹을 알 수 있습니다. –

+0

그래, 나는 (두 개의 정규식이 주어 졌으므로) 분명히 했어야했다. –

+0

매력처럼 작동합니다. – Jorn