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)) */
}
}
댓글
댓글 쓰기