nathan_H
정규식 수업. 본문
정규식에서
?는 앞에 있는 식이 등장해도 돼도 안돼도 된다는 의미.
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 |