1. 정규 표현식 활용 例)
ㅇ 숫자
- 0부터 9까지 숫자 하나 : 0|1|2|3|4|5|6|7|8|9 또는 [0123456789] 또는 [0-9] 또는 \d
- 10에서 19 사이의 숫자 : \b[1][0-9]\b 또는 \b[1]\d\b
. \b : 단어 경계 위치
. \d : 1개 숫자 즉, [0-9]
- (숫자의 수에 따른 매칭)
. 하나 이상의 숫자 : \d+
. 3개 숫자 만으로 됨 : [0-9]{3} ( [0-9]의 숫자 3회 반복 )`
. 5개 숫자 만으로 됨 : ^\d\d\d\d\d$ (^,$는 처음,끝 위치 지정 앵커)
. 임의 길이의 숫자는 모두 매칭 : \d*
ㅇ 영문 알파벳
- 임의 길이(0 이상)의 영문 알파벳 : [A-Za-z]*
- 값 전체가 영문 알파벳 : ^[A-Za-z]+$
- 대소문자를 구별 안하는 경우 : [Rr]eg[Ee]x
ㅇ 모든 문자열 : `.+` 또는 `.*`
- `.+` : 만일, 빈 문자열이면, 빈 문자열 포함 안하므로, null 형식 반환
- `.*` : 만일, 빈 문자열이면, 빈 문자열도 포함하므로, 빈 문자열 "" 반환
- 한편, 문장 중간에, 임의 문자(.)에 해당 안되는 문자(줄바꿈 문자)가 나타나면 매치 중단
- 例) 문자 A로 끝나는 모든 문자열 : `.+A`,`.*A`
ㅇ 식별자 (변수명,상수명,함수명 등) : [A-Za-z_][A-Za-z0-9_]*
- 알파벳 문자 또는 `_`로 시작하며, ([A-Za-z_])
- 바로뒤, 알파벳 문자,숫자(디지트),_(언더바)를 조합시킨 문자열로써, ([A-Za-z0-9_])
- 그후, 임의 길이(가변 길이)의 토큰 임 (*)
ㅇ 단어 여부
- 특정 완전한 단어 만 : \b단어\b
. 여기서, \b는 단어 경계(word boundary)를 의미
ㅇ 한글 여부
- 2개 문자가 연속으로 `가-힣`이면 => 한글로 판정
. [\xA1-\xA1-\xFE] 또는 [가-힣][가-힣]
. [\x{ac00}-\x{d7a3}][\x{ac00}-\x{d7a3}]
- 만일, 자음,모음까지 포함하려면, [ㄱ-ㅣ가-힣][ㄱ-ㅣ가-힣]
ㅇ 특수 문자 포함 여부 : [^A-Za-z0-9]
- 문자 클래스 내 부정 : [ ] 내 선두 위치에 ^를 쓰면 부정(否定)
- [^0-9A-Za-z] => 숫자,영문 알파벳 대소 문자 이외의 모든 문자에 일치함
- 특수 문자 : A-Z a-z 0-9 이외의 문자 즉, { } [ ] / \ ? . , ; : ! | 등
ㅇ 옵션 활용 例 : /img (옵션)
- 영문 대소문자 구분 없이(/i),
- 모든 줄에 걸쳐서(/m),
- 전역 검사(/g)를 함
2. 특정 응용
ㅇ html 문서 내 태그 확인
- 例) <script[^>]*>
. <script 문자열에 매치, > 가 아닌([^>]) 문자가 0회 이상(*) 매치, > 에 매치
ㅇ IP 주소 찾음
- 例) \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 또는 (\d{1,3}\.){3}\.\d{1,3}
. 숫자 1~3개, 마침표(.), 숫자 1~3개, 마침표(.), 숫자 1~3개, 마침표(.), 숫자 1~3개
- 例) (((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2}))\.){3}(((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2})))
ㅇ 이메일 주소 형태
- 例) [\w.]+@[\w.]+\.\w+
- 例) ^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([]-_\.]?[0-9a-zA-Z])*\.[0-9a-zA-Z]{2,3}$
ㅇ 휴대폰 전화번호
- 例) ^\d{3}-\d{4}-\d{4}$
. 맨앞(^) 3개 숫자, 대시(-), 숫자 4개, 대시(-), 맨뒤($) 숫자 4개