반응형
파이썬에서 정규표현식 사용하기
파이썬에서 정규표현식 사용할 때는 re 모듈 import하여 사용한다.
메서드
Method | 목적 |
match() | 문자열의 처음부터 정규식과 매치되는지 조사한다. |
search() | 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. |
findall() | 정규식과 매치되는 모든 문자열(substring)을 리스트로 리턴한다. |
finditer() | 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 리턴한다. |
예제
ip 리스트에 사설 IP만 출력하는 예제를 보자.
import re
ip = ['192.168.0.100', '10.10.10.10', '193.232.111.222', '184.231.231.122']
reg = re.compile(
'10(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){3}|192\.168(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){2}|172\.(?:1[6-9]|2[0-9]|3[01])(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){2}')
s = []
for i in ip:
try:
searchRes = reg.search(i)
s.append(searchRes)
except:
pass
print(s)
# 결과
[<re.Match object; span=(0, 13), match='192.168.0.100'>, <re.Match object; span=(0, 11), match='10.10.10.10'>, None, None]
위 결과를 보면 사설 IP만 match 되고 공인 IP는 None으로 출력된다.
위 출력 결과에서 match 결과만 가져오기 위해 group() 메서드를 사용해서 출력하면 IP값만 출력된다.
import re
ip = ['192.168.0.100', '10.10.10.10', '193.232.111.222', '184.231.231.122']
reg = re.compile(
'10(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){3}|192\.168(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){2}|172\.(?:1[6-9]|2[0-9]|3[01])(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){2}')
s = []
for i in ip:
try:
searchRes = reg.search(i)
res = searchRes.group()
s.append(res)
except:
pass
print(s)
# 결과
['192.168.0.100', '10.10.10.10']
반응형
'프로그래밍_기타 언어' 카테고리의 다른 글
사설IP 공인 IP 정규표현식 패턴 (1) | 2024.09.22 |
---|---|
LSTM 모델 주가 예측 파이썬 코드 (0) | 2024.09.22 |
파이썬(python) 연산자 (0) | 2024.09.22 |
파이썬(python) 숫자형 (0) | 2024.09.22 |
파이썬(python) 리스트(list) (0) | 2024.09.22 |