본문 바로가기

내일배움캠프/Today I Learned

[내배캠] 나의 스무번째 회고록

Regular Expression 정규표현식

Regular Expression는 문자열에서 어떤 문자가 특별한 의미를 갖는 것을 말한다. 

예를 들어, \d는 0에서 9사이의 숫자를 의미하게 된다. 

 

Regular ExpressionDescription

. 어떤 문자 1개를 의미
^regex ^ 다음 regex로 line을 시작하는지
regex$ $ 앞의 regex가 line의 마지막으로 끝나는지
[abc] a, b, c 중의 문자 1개
[abc][vz] a, b, c 중에 문자 1개와 v, z 중에 문자 1개의 조합
[^abc] a, b, c를 제외한 문자 1개
[a-d1-7] ad, 17 사이의 문자 1개
X|Z X 또는 Z
\d 0~9 사이의 숫자, [0-9]와 동일
\D 숫자가 아닌 어떤 문자, [^0-9]와 동일
\s whitespace 1개, [\t\n\x0b\r\f]와 동일
\S whitespace를 제외한 문자
\w Alphanumeric(alphabet, 숫자) 문자, [a-zA-Z_0-9]와 동일
\W Alphanumeric을 제외한 문자(whitespace 등)
\S+ whitespace를 제외한 여러 문자
\b 단어의 경계(공백)를 찾습니다
[ ] 한개의 문자를 의미
.\ .
? 없음 또는 한개
* 없음 또는 한개 이상
+ 한개 이상
{n} 정확히 n개
{n,} 최소한 n개
() 그룹핑

예를 들어 010-1234-1234 와 같은 전화번호 정규 표현식을 작성해보자면

1. 앞자리 011 안됨 무조건 010으로 시작
2. 중간에 - 가 들어가야 인정
3. 중간 4자리, 마지막 4자리 지켜야 함

답안 : (010)-\d{3,4}-\d{4}

 

hello@naver.com 와 같은 이메일 정규 표현식을 작성해보자면 

1. @반드시 있어야함
2. .이 반드시 있어야함

답안 : \w+@\w+.\ \w+(\. \w+)?