Programming/기초

[프로그래밍] 정규표현식이란?

MOONCO 2021. 3. 18. 12:33

정규표현식이란?

문자열을 처리하는 방법

원하는 문자를 검색하거나, 찾아서 바꿀 수 있다.

 

정규표현식에 사용되는 메타 문자

원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자

. ^ $ * + ? { } [ ] \ | ( )

 

메타 문자로, 원하는 문자 선택하기

 

문자 클래스 [] 선택하기

[abc] : a, b, c 중 한개의 문자와 일치하는 것 선택

    "a" : "abc"의 "a"와 일치
    
    "before" : "abc"의 "b"와 일치
    
    "dude" : "abc"와 일치하지 않음
    
    [a-c] : [abc]와 같음 하이픈(-)을 사용하여, 범위지정 가능
    
    
    
\d : 숫자 선택 [0-9]

\D : 숫자가 아닌 것 선택 [^0-9]

\s : 공간 문자 선택 [ \t\n\r\v] (맨앞의 공백-space 도 포함)

\s : 공간 문자가 아닌 것 선택 [^ \t\n\r\v]

\w : 문자+숫자 선택 [a-zA-Z0-9_]

\W : 문자+숫자가 아닌 것 선택[^a-zA-Z0-9_]
    
    
    
# 메타문자 "^"는 반대(not)의 의미를 가짐

 

\n(줄바꿈 문자)을 제외한 모든 문자 선택하기  Dot(.)

a.b : "a" + 모든문자 + "b" 선택

a[.]b : "a" + Dot(.)문자 + "b"

    "a.b" 문자열과 일치
    
    "a0b" 문자열과는 일치하지 않음

 

반복  (*)

ca*t : "a"가 반복되어야 한다

    ct : "a"가 0번 반복되므로 일치
    
    cat : "a"가 1번 반복되므로 일치
    
    caaat : "a"가 3번 반복되므로 일치

 

반복  (+)

ca+t : "a"가 1번이상 반복되어야 한다

    ct : "a"가 0번 반복되는것은 일치하지 않음
    
    cat : "a"가 1번 반복되므로 일치
    
    caaat : "a"가 3번 반복되므로 일치

 

반복  ({m,n}, ?)

ca{3}t : "a"가 3번 반복되어야 한다

    ct : "a"가 0번 반복되므로 일치하지 않음
    
    cat : "a"가 1번 반복되므로 일치하지 않음
    
    caaat : "a"가 3번 반복되므로 일치
    
ca{1,3}t : "a"가 1~3번 반복되어야 한다

    ct : "a"가 0번 반복되므로 일치하지 않음
    
    cat : "a"가 1번 반복되므로 일치
    
    caaat : "a"가 3번 반복되므로 일치

 

선택적 요소 (?)

ab?c : "a" + b(있어도되고 없어도됨) + "c"

    ac : "a","c" 일치
    
    abc : "a","b","c" 일치

 

시작부분 (^)

^ab : ab로 시작해야함

    ac : 일치하지 않음
    
    abc : "ab" 일치
    
    cab : 일치하지 않음

 

경계부분 (\b)

\ba : 왼쪽에 a로 시작하는 경계 찾기

    abc : "a" 일치
    
    b ac : "a" 일치
    
a\b : 오른쪽에 a로 끝나는 경계 찾기

    abc : 일치하지 않음
    
    bca : "a" 일치
    
    ba ca : "a" 두번 일치

 

경계부분 제외한 부분 (\B)

 

그룹짓기 ( () )

(abc)+ : "abc"가 반복되는 부분 찾기

 

반응형