nathan_H

정규식 수업. 본문

Programming Laguage/Python

정규식 수업.

nathan_H 2019. 6. 3. 21:01

 

 

정규식에서 

?는 앞에 있는 식이 등장해도 돼도 안돼도 된다는 의미.

ex) [0-7][2-5][2-9]?

-> 이면 [2-9]라는 식은 등장유무에 상관없이 만족.(매칭 안돼도 상관 없다.)

 

dir - > 해당 객체의 멤버 변수들 호출.

 

p = re.compile("[1-8][0-9][1-8]")

python console창에서

p.match("123")

>> <_sre.SRE_Match object; span=(0, 3), match='123'>

# 인터프리터 창에선 함수 리턴값을 보여준다.

a = p.match("123") # a라는 변수에 객체 저장

print(a) 

>> <_sre.SRE_Match object; span=(0, 3), match='123'>

 

 

a+ -> 1개 이상의 글자 = "a" 

-> 연속 했을때!!

ex)

>>> p = re.compile("a+")

>>> p.match("a")

<_sre.SRE_Match object; span=(0, 1), match='a'>

>>> p.match("aaaa")

>>> p.match("aaaaabaaaa")

<_sre.SRE_Match object; span=(0, 5), match='aaaaa'>

 

p = re.compile("[a-z]*")

-> *는 '?'에 '+'을 더한 개념.

 

-> 빈문자열에 대해서도 매칭이 된다.

 

 p = re.compile("[a-z]{2,}") - {2, 4} -> 2개이상 4개 이하.

-> 2~4개의 a~z 알파벳.

 

re.compile(“[0-9].[a-z]”)

-> 1개의 숫자, 1개의 임의의글자, 1개의 알파벳

-

-> . -> 줄바꿈 문자만 제외한 모든 문자.

 

p = re.compile(“[0-9][a.][a-z]”)

[]안에 들어 온것은  or로 묶인다.

하지만 [a.] 은 'a' 랑 '.' 가능.

ex)

>>> p.match(“9cc9”)

>>> p.match(“9.a”)

<_sre.SRE_Match object; span=(0, 3), match=‘9.a'>

>>> p.match(“9aa”)

<_sre.SRE_Match object; span=(0, 3), match=‘9aa'>

 

 

re.compile(“[^0-9]”) # ^ not의 의미.

-> 1개의 숫자가 아닌 모든 문자

ex)

>>> p = re.compile(“[^0-9]”)

>>> p.match(“9”)

>>> p.match(“ab”)

<_sre.SRE_Match object; span=(0, 1), match=‘a'>

 

 

정규식에서 자주 쓰이는 것들.

 

[0-9] ->  \d

[^0-9] ->  \D

[ \t\n\r\f\v]  -> \s

[^ \t\n\r\f\v] -> \S

[a-zA-Z0-9]  -> \w

[^a-zA-Z0-9] -> \W

 

 

re.compile(“[^0-9]+”)

-> re.compile("\D+")

1개 이상의 숫자가 아닌 모든 문자

ex) 

>>> import re

>>> p = re.compile(“\D+”)

>>> p.match(“9”)

>>> p.match(“ab”)

<_sre.SRE_Match object; span=(0, 2), match=‘ab'>

re.compile(“\D+”)

 

 

 

'Programming Laguage > Python' 카테고리의 다른 글

python - 모듈 수정  (0) 2019.05.01
python - __name__  (0) 2019.05.01
python - Module  (0) 2019.05.01
python - namedtuple  (0) 2019.04.30
python class - duck typing  (0) 2019.04.30
Comments