etc

정규표현식(Regular Expression)

toget ㅣ 2023. 11. 22. 16:50

특정한 규정을 가진 문자열의 집하블 표한하기 위해 쓰이는 형식 언어입니다.

 

형식 언어: 수학,컴퓨터 과학, 언어학에서 쓰는 말로, 특정한 법칙들에 따라 적절하게 구성된 문자열들의 집합.

 

^ : 문자열의 시작을 표현.

ex) ^http : 문자열이 'http'로 시작하는 경우에만 매칭. 문자열 중간에 나타나는 http('ahttps' -> 매칭X)에는 매칭하지 않음.

 

* [ ... ] 대괄호 안에서 쓰이는 경우라면, ^ 뒤에 오는 문자열 패턴과 일치하지 않는 것을 매칭한다.

ex) ab[^0-9] : 'ab' 뒤에 숫자가 아닌 것이 오는 것만 매칭. (abc -> 매칭O / ab1 -> 매칭X)

 

 $  : 문자열의 끝을 표현.

ex) tem$ : 문자열이 'tem'으로 끝난 경우에만 매칭 ('item' -> 매칭O / 'contemporary' -> 매칭X)

 

 \b : 문자와 공백 사이를 표현. 문자열의 시작, 끝, 개행, 탭, 콤마(','), 구두점('.'), 대시('-') 등이 해당된다.

ex) \bplay\b : 단어 경계로 구분되는 'play'에는 매칭. ('I play the game on the playground' 에서 'play'를 매칭O / 'playground' 는 매칭X) 

 

 \B : \b 가 아닌것. 

ex) play\B : 'play' 뒤에 단어의 경계가 아닌 것이 올때, 즉 문자열의 연속이 되는 패턴만 매칭.

('I play the game on the playground' 에서 'playground' 를 매칭O / 'play'는 매칭X, 이때 'playground'를 매칭한다고 해서 'playground' 전체를 의미하는 것이 아닌, 'playground' 안의 'play' 만을 찾아낸다.)

 

 \s : 모든 White-space (공백) 문자에 매칭. [\t\n\r\f\v] 와 동일한 의미.

ex) 

 

 \S : White-space (공백) 문자를 제외한 모든 문자에 매칭. 

 

 \d : 모든 숫자를 매칭. [0-9] 와 동일한 의미.

 

 \D : 숫자가 아닌 모든 문자를 매칭. [^0-9] 와 동일한 의미.

 

 \w : 단어를 만들 수 있는 문자를 매칭. 알파벳 대소문자, 숫자, 언더스코어를 포함. [A-Za-z0-9_] 와 동일한 의미.

 

 \W : \w에 포함되지 않는 모든 문자를 매칭.

 

 \n : LF(Line Feed)를 의미. 즉, 엔터(개행문자)를 의미.

참고로 \r 은 CR(Carriage Return)을 의미하는데, UNIX 에서 엔터의 의미를 LF 하나만 쓰는 것으로 보고, Windows에서는 CRLF를 함께 쓰는 것이 엔터를 의미한다. 현대에 와서는 에디터가 알아서 둘다 같이 엔터로 해석시켜 주므로, 엔터를 표현하려고 한다면 그냥 \n 만 사용해도 무방하다. 

 

 \ : 이스케이프용 문자. 정규식 상의 특별한 의미를 가지는 문자들을 해당 문자 그대로 사용하고자 할 때 사용하는 문자이다.

ex) \^ : '^' 문자 그대로를 의미.

 

 .  : 모든 문자 1개를 매칭. 이때 공백 한칸도 문자 1개로 취급됨.