Hyesung Oh

Regular Expression, Regex 정규표현식 문자 본문

DEV/Python

Regular Expression, Regex 정규표현식 문자

혜성 Hyesung 2020. 1. 29. 14:32
반응형

기본

1) [ ] : 문자 한개를 의미. [] 안에들어가는 모든 문자는 서로 독립적. 정규식에서 a는 [a] 와 동일함 abc는 [abc]가 아니고 [a][b][c]의미임
예)
[AaB] : a, B - 일치, b -일치하지 않음. AB에서는 A도 일치 하고, B도 일치함
[0-9] : 0~9 내의 숫자를 의미. 0 -일치, A - 일치 하지 않음

2) . : 임의의 문자/숫자 1개를 의미(단,\n(개행 문자)를 제외한 모든 문자와 매치)

예)
a.c 인 경우, abc - 일치, abb - 일치 하지 않음

3) * : 앞의 문자/숫자의 반복을 의미하며 한번도 반복이 안될 수 있음

예)
a*b 인 경우, ab : 일치, aab : 일치, aaab : 일치 , abc : 불일치
[ab]*b 인 경우, ab : 일치, b 일치 ( [ab]*에 의해 문자가 없을 수도 있음, 0번 또는 1번이상을 의미하기 때문임)

4) + : 앞의 문자/숫자의 반복을 의미하며 최소 한번의 반복이 있어야 함

예)
a+b 인 경우, ab : 불일치, aab : 일치, aaab : 일치 , abc : 불일치

[ab]+b 인 경우, ab : 일치, b 불일치 ( [ab]+에 의해 문자가 하나가 있어야 함)


5) {m,n} : 앞의 문자/숫자가 최소 m개 최대 n의 반복을 나타냄

예)
a{2,3} : a : 불일치, aa : 일치, aaa : 일치, aaaa : 불일치
{1}은 +와 동일하며 {0}은 *와 동일함

6) ? : {0, 1} 의미하며,  앞의 문자/숫자가 없거나 한개인 경우

예)
a?b : a : 불일치, ab : 일치, b : 일치

7) ^ : NOT 을 의미한다. [ ] 내에서 사용

예)
[^0-9] : 0 : 불일치, A : 일치

8) ^ : 문자열 시작을 의미예)
^abc : abc 일치, babc 불일치 중간에 abc가 있지만 시작이 아니므로 일치 하지 않음, kkk abc : abc 단어가 있긴하지만 문자열의 처음이 아니므로 불일치

9) $ : 문자열의 마지막을 의미함

예)
abc$ : kkkabc 는 일치 (search()메소드로 해야 함), re.compile('abc$').search('kkkabc')

10) ( ) : 문자를 묶는다위의 대부분의 문법이 앞의 문자 1글자를 의미했는데 ( )를 이용하면 여러개의 문자로 대치 된다.
예)
(ab)* : a : 불일치, b : 불일치, ab : 일치, ababab : 일치

11) | : OR을 의미한다.  a|b 는 [ab] 와 같은 표현이다. ab|cd 는 [abcd]와 같은 표현은 아니다.
ab|cd 는 ([a][b])|([c][d]) 와 같다.

12) \ : 정규식 표현식에 사용이 안되는 문자들의 표시할때 사용한다.은 \. 으로 표시.
\은 \\로 표시함

자주 사용하는 문자열

\d - 숫자와 매치, [0-9]
\D - 숫자가 아닌 것과 매치, [^0-9]
\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.
\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]
\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9_]
\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9_].

반응형
Comments