2020.09.28 자바프로그래밍 RegularExpression

 package i_api;


import java.util.regex.Matcher;

import java.util.regex.Pattern;


public class RegularExpression {




public static void main(String[] args) {

// TODO Auto-generated method stub


/*

* 정규표현식 : 문자열의 패턴을 검사하는 표현식 

* ^ 뒷 문자로 시작 ^a 는 a로 시작하는지 검사하겠다.

* $ 앞 문자로 종료  a$ a라는 문자로 끝나는지 

* . 임의의 문자 ( 줄바꿈 제외 ) 

* * 앞 문자가 0개 이상

* + 앞 문자가 1개 이상 

* ? 앞 문자가 없거나 1개 

* [] 문자의 집합이나 범위 ( [a-z] : a부터 z까지, [^a-z] : a부터 z가 아닌것 ) // 대문자로 써줘도 되고 숫자를 써줘도 되  

* {} 앞 문자의 개수 ( {2} : 2개, {2,4} : 2개 이상 4개 이하 ) 

* () 그룹화 ( 1개의 문자처럼 인식 ) 

* | or 연산 

* \s 공백, 탭, 줄바꿈

* \S 공백, 탭, 줄바꿈이 아닌 문자 

* \w 알파벳이나 숫자 

* \W 알파벳이나 숫자가 아닌 문자 

* \d 숫자 

* \D 숫자가 아닌 문자

* (?i) 뒷 문자의 대소문자 구분 안함

* \ 정규표현식에서 사용되는 특수문자 표현

*  

*/

String str = "abc123"; 

//String regex = "[a-z]{3}[0-9]{1,3}"; //공백을 어디든 넣어주면 안된다는 뜻 

//String regex = "[a-z0-9]+"; 

//String regex = "\\w*" ; 

String regex = ".*" ; 

//정규표현식을 만들때는 좁은식 정확히 내가 만들어주고 싶은 애를 써주는게 좋다. 

Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(str); 

System.out.println(m.matches());

//Pattern 이라는 클래스(객체)에서 compile 이라는 메소드에 regex 를 넘겨준다.  

//아이디, 전화번호, 이메일 주소의 유효성을 검사하는 정규표현식을 만들어 주세요. 

//아이디 만들기

//5에서 15 까지의 영문 소문자, 숫자와 특수기호(_), (-) 만 사용 가능합니다. 

String str_ = "cora_09022";

String reg = "[a-z0-9_-]{5,15}";

Pattern r = Pattern.compile(reg); 

Matcher d = r.matcher(str_); 

System.out.println(d.matches()); 

//전화번호 만들기 

String 

String num = "010-7702-9767"; 

String condition = "01[0-6]+-[0-9]{3,4}-[0-9]{4}" ; 

Pattern e = Pattern.compile(condition);

Matcher w = e.matcher(num); 

System.out.println(w.matches()); 

//이메일 주소 만들기 

  //선생님이 짠 코드

/* //아이디 : 

[a-z0-9_-]{5,20} 

전화번호 : 

^0\\d{1,3}-\\d{3,4}-\\d{4} 

이메일주소 : 

[a-z0-9_-]{5,20}@[a-zA-Z]+\\.(?!)(com|net|org|([a-z]{2}\\.kr)) */


}


}


댓글