String에서 정규식을 사용할 수 있는 작업은 실제로 java.util.regex.Pattern 및 java.util.regex.Matcher의 기능을 사용합니다. String의 match() 메서드를 호출하면 실제로 Pattern의 정적 메서드인 match()가 호출됩니다. 이 메서드는 문자열이 정규식과 일치하는지 여부를 나타내는 부울 값을 반환합니다.
정규식을 재사용을 위한 객체로 처리하려면 Pattern의 정적 메서드 compile()을 사용하여 컴파일할 수 있습니다. compile() 메서드는 정규식을 나타내는 Pattern 인스턴스를 반환합니다. 그런 다음 Pattern 인스턴스의 matcher() 메서드를 재사용하여 정규식과 일치하는 인스턴스를 나타내는 Matcher 인스턴스를 반환할 수 있습니다. 이 경우 정규식 조건을 만족하는 메소드를 사용할 수 있습니다. 예제 6.11에서는 이를 보여줍니다.
** 예시 6.11UsePatternMatcher.java
import java.util.regex.*;
공개 클래스 UsePatternMatcher {
공개 정적 무효 메인(String[] args) {
스트링폰1 =
"저스틴 휴대폰 번호: 0939-100391n" +
"엄마 휴대폰번호 : 0939-666888n";
패턴 패턴 = Pattern.compile(".*0939-\d{6}");
일치자 matcher = Pattern.matcher(phones1);
while(matcher.find()) {
System.out.println(matcher.group());
}
스트링폰2 =
"애벌레 휴대폰 번호 : 0952-600391n" +
"부시 휴대전화 번호: 0939-550391";
matcher = 패턴.매처(phones2);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}
예제 6.11에서는 0939로 시작하는 숫자를 검색합니다. 숫자가 둘 이상의 소스(예:phone1,phone2)에서 온다고 가정하면 정규식을 컴파일하고 Pattern 객체를 반환할 수 있습니다. 그런 다음 비교 중에 이 Pattern 객체를 재사용할 수 있습니다. 일치하는 Matcher 인스턴스를 반환하려면 matcher()를 사용하세요. find() 메소드는 일치하는 문자열이 있는지 여부를 나타내며, group() 메소드는 일치하는 문자열을 반환할 수 있습니다. 프로그램의 실행 결과는 다음과 같습니다.
저스틴 휴대폰 번호 : 0939-100391
엄마 휴대폰번호 : 0939-666888
부시 휴대전화 번호: 0939-550391
프로그램이 일치하지 않는 문자열을 반환하는 대신 정규식과 일치하는 문자열을 반환할 수 있도록 Pattern과 Matcher를 사용하여 예제 6.9를 다시 작성해 보겠습니다.
** 예 6.12RegularExpressionDemo2.java
import java.util.regex.*;
공개 클래스 RegularExpressionDemo2 {
공개 정적 무효 메인(String[] args) {
문자열 텍스트 = "abcdebcadxbc";
패턴 패턴 = Pattern.compile(".bc");
일치자 matcher = Pattern.matcher(text);
while(matcher.find()) {
System.out.println(matcher.group());
}
System.out.println();
}
}
style='font-family:宋体'>실행 결과:
알파벳
EBC
xbc
이 기사는 CSDN 블로그에서 가져온 것입니다. 재인쇄할 때 출처를 표시하십시오: http://blog.csdn.net/wofe912/archive/2009/12/18/5030571.aspx