정규표현식 예

(2022-04-29)

정규표현식 예시


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개

정규표현식
   1. 정규 표현식   2. 메타 문자   3. 메타문자 수량자   4. 메타문자 그룹화   5. 메타문자 앵커   6. 정규표현식 활용 기초   7. 정규표현식 예  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"