nme.kr

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
프로그램:java:ㄴhomework:book_source:ch12 [2022/01/05 11:40]
clayeryan@gmail.com [java.util.regex 패키지]
프로그램:java:ㄴhomework:book_source:ch12 [2023/07/13 17:29] (현재)
clayeryan@gmail.com ↷ 문서가 programmer:java:ㄴhomework:book_source:ch12에서 프로그램:java:ㄴhomework:book_source:ch12(으)로 이동되었습니다
줄 1: 줄 1:
-====== Chaptor12 기본 API ======+====== Ch.12 기본 API ======
  
 ===== java.lang 패키지 ===== ===== java.lang 패키지 =====
줄 1308: 줄 1308:
 </code> </code>
  
-  - Pattern 클래스의 static 메서드 copile에 정규표현식을 매개변수로 넣고 객체 생성 Pattern p = Pattern.copile("b[a-z]*"); +|1. Pattern 클래스의 static 메서드 copile에 정규표현식을 매개변수로 넣고 객체 생성 Pattern p = Pattern.copile("b[a-z]*");| 
-  Matcher 클래스를 이용해 생성한 패턴 책체의 matcher() 메서드의 매개변수로 비교할 대상 문자열을 넣어 Matcher 객체 생성+|2. Matcher 클래스를 이용해 생성한 패턴 책체의 matcher() 메서드의 매개변수로 비교할 대상 문자열을 넣어 Matcher 객체 생성
 +|
   Matcher m;   Matcher m;
-  m= p.matcher("bat"); +  m= p.matcher("bat");   
-  -Matcher 객체에 amtchers() 메서드를 호출해 매칭이 되었는지(true) 안 되었는지(false) 판단 if (m.matchers()) {...}+
 +|3. Matcher 객체에 amtchers() 메서드를 호출해 매칭이 되었는지(true) 안 되었는지(false) 판단 if (m.matchers()) {...}
 + 
 + 
 + 
 ==== 정규 표현식에 사용되는 문자 ==== ==== 정규 표현식에 사용되는 문자 ====
  
 ==== 정규 표현식으로 문자열검증 ==== ==== 정규 표현식으로 문자열검증 ====
 +**Pattern 클래스의 static 메서드 matches() 메서드 사용**
 +<code java>
 +package chapter12;
  
 +import java.util.regex.Matcher;
 +import java.util.regex.Pattern;
  
 +public class ReEx2 {
  
 + public static void main(String[] args) {
 +
 + String[] patterns = {"." ,"[a-z]?","[0-9]+","0[1-9]*","^[0-9]",
 + "[^0-9]","[a-z]*","[a-z]+","02|010" ,"\\s", "\\S" ,"\\d" ,"\\w","\\W"};
 + String[] datas = {"bat","021231234","12345","011","bed","02","A","9","a","*"};
 +
 + for(String d : datas) {
 + System.out.print(d+"문자와 일치하는 패턴 : ");
 + for(String p : patterns) {
 + Pattern pattern = Pattern.compile(p);
 + Matcher m = pattern.matcher(d);
 + if(m.matches()) {
 + System.out.print(p+", ");
 + }
 + }
 + System.out.println();
 + }
 + }
 +
 +}
 +
 +</code>
 +
 +<code java>
 +package chapter12;
 +
 +import java.util.regex.Matcher;
 +import java.util.regex.Pattern;
 +
 +public class ReEx3 {
 +
 + public static void main(String[] args) {
 +
 + String source = "휴대폰번호:010-1111-1111, 집전화번호:02-1234-5678,"
 + + "이메일주소:[email protected] 계좌번호:123-12-123456";
 + String telpattern = "(0\\d{1,2})-(\\d{3,4})-(\\d{4})";
 + String emailpattern = "(\\w+)@(\\w+).(\\w+)";
 + String accountpattern = "(\\d{3})-(\\d{2})-(\\d{6})";
 +
 + Pattern p = Pattern.compile(telpattern);
 + Matcher m = p.matcher(source);
 +
 + System.out.println("전화번호 : ");
 + while(m.find()) { // 지정된 패턴 맞는 문자열을 검색
 + System.out.println(m.group() + " : "
 + + m.group(1) + "," + m.group(2) + "," + m.group(3));
 + }
 +
 + p = Pattern.compile(emailpattern);
 + m = p.matcher(source);
 + System.out.println("이메일 : ");
 + while(m.find()) { // 지정된 패턴 맞는 문자열을 검색
 + System.out.println(m.group() + " : "
 + + m.group(1) + "," + m.group(2) + "," + m.group(3));
 + }
 +
 + p = Pattern.compile(accountpattern);
 + m = p.matcher(source);
 + System.out.println("계좌번호 : ");
 + while(m.find()) { // 지정된 패턴 맞는 문자열을 검색
 + System.out.println(m.group() + " : "
 + + m.group(1) + "," + m.group(2) + "," + m.group(3));
 + }
 +
 + }
 +
 +}
 +
 +</code>