기록장

파이썬 정규표현식 import re 본문

코딩테스트 공부

파이썬 정규표현식 import re

210_yy 2021. 8. 17. 13:05

*** 먼저 정규표현식을 사용하려면 import re 를 해주어야 한다.

 


\d : 숫자와 매치 [0-9]와 같은 의미

\D : 숫자 제외한 문자 [^0-9]와 같은 의미

\s : whitespace

\S : not whitespace

\w : 문자 + 숫자 (word) [0-9a-zA-Z]와 같은 의미

\W : 문자 숫자 제외 [^0-9a-zA-Z]와 같은 의미

 

 

정규식의 . (dot) 의미 

== \n(줄바꿈)을 제외한 모든 문자 

 

정규식 a.b 는 

a와 b사이에 어떤 문자라도 있으면 매치된다는 의미 (a+모든 문자 + b)

 

정규식 a[.]b 는 

a.b만 된다 [ ] 안에 . 가 들어가면 . 문자 자체를 의미 

 

* (반복을 의미) 0번 이상 

+ (반복을 의미) 1번 이상 

{m,n} m번 이상 n번 이하 반복

 

있거나 없거나 

ab?c 는 ac 또는 abc와 매치 된다.

 


 

 

re 모듈 사용 방법

re.compile(정규표현식) 을 하면 패턴을 리턴 한다.

reg = re.compile("a*b") 하면 패턴 객체를 리턴

 

패턴 객체를 가지고 사용할 수 있는 method 

 

import re

p = re.compile("[a-z]+")이라고 해보자

소문자가 하나 이상 있으면 매치되는 문자열이다.

 

1. match : 문자열의 처음부터 끝이  패턴과 매치되는 지

 

p.match('python') 문자열의 처음부터 끝이 소문자 로 패턴과 매치하기 때문에 match 객체를 리턴한다.

p.match('3 python') 문자열의 처음이 3로 패턴과 매치하지 않기 때문에 None 을 리턴한다.

 

2.  search : 문자열에 패턴이 있는지 

p.search('python') : python에 패턴이 있어서 객체 return

 

3. findall : 문자열에서 각 단어를 정규식과 매치해서 리스트로 리턴해준다

 

4. finditer : finditer는 findall과 동일하지만 그 결과로 반복 가능한 객체(iterator object)를 돌려준다

 

 

sub 메서드를 사용하면 정규식과 매치되는 부분을 다른 문자로 쉽게 바꿀 수 있다.

 

p.sub("바꿀 문자열", "문자열")

 

p = re.compile('blue|red|white')

p.sub("color", "blue socks and red socks")

blue, red, white를 color로 바꾸겠다..

==> color socks and color socks 로 바뀐다

반응형
Comments