파이썬에서 정규식은 매우 유용하다. 메타문자를 같이 사용하면 검색되는 문자열을 좀 더 정확하게 찾을 수 있다. 이런 정규식을 사용함으로써 많은 것을 할 수 있겠짐나, 단어의 추출이나 검색 조작에도 유용하다. 메타문자만 잘 사용하더라도 어지간한 것은 할 수 있다.
파이썬 정규식 메타문자
python regex meta character
파이썬에서 정규식을 사용하기 위해 사용하는 것이 패턴문자열이다.
패턴문자열에는 단순한 문자열을 사용할 수 있지만 메타문자를 이용하여 패턴문자열의 자유도를 높일 수 있다.
자유도를 높인다는 것은 패턴문자열의 다양성을 높인다는 것이다.
이것은 패턴문자열의 확장성을 의미하기도 한다.
정규식 메타문자
길고 긴 문자열에서 특정 문자열을 찾는 것은 귀찮은 작업이다.
귀찮은 작업을 좀 더 쉽게 하기 위해 엑셀에서는 함수를 사용하고, 프로그램은 정규식과 같은 것을 제공한다.
이런 것을 가능하게 하는 것이 정규식이다.
정규식에서 패턴문자열을 확장하여 사용하기 위해 메타문자를 사용한다.
메타문자의 종류는 다음과 같다.
- []
문자의 집합을 의미 - \
문자열 시퀀스를 의미 - .
불특정한 문자를 의미 - ^
문자열의 시작을 의미 - $
문자열의 종료를 의미 - *
0개 이상의 문자를 의미 - +
1개 이상의 문자를 의미 - ?
0 또는 1개의 문자를 의미 - {}
문자열에서 정확한 갯수를 의미 - |
단어들의 집합을 의미 ( or 의 의미 )
샘플 코드
위의 의미만 보면 알 수 없다.
샘플코드를 보면 이해가 될 것이다.
메타문자의 의미를 아는 것은 정규식을 잘 사용하는데 도움이 된다.
print("----------")
import re
vString = "파이썬은 누구나 다르기 쉬운 언어이다. 배우고 싶은 언어 1위에서 10위까지 항상 파이썬은 존재한다."
print("----------")
vPattern = "[파-하]"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "\d"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "파.썬"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "^파이썬"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "다.$"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "1.*지"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "1.+지"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "파.?썬"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "파.{1}썬"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "파이썬|파이참"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
vPattern = "파이썬|파이참"
vMatch = re.findall(vPattern, vString)
print(type(vPattern), vPattern)
print(type(vMatch), vMatch)
print("----------")
결과화면을 보자.
정규식의 메타문자의 의미를 해석해보는 것이 중요하다.
처음에는 그 의미가 어려울 수 있지만 직접 코딩해 보는 것이 중요한 부분이기도 하다.
반응형
'programming > Python' 카테고리의 다른 글
파이썬 예외처리 try except python (0) | 2021.12.20 |
---|---|
파이썬 pip 패키지 모듈관리 사용 찾기 설치 지우기 using python pip package manager (0) | 2021.12.20 |
파이썬 정규식 메서드 4가지 python regex method (0) | 2021.12.17 |
파이썬 정규식 모듈 사용하기 using python regex module (0) | 2021.12.17 |
파이썬 json 문자열 정렬하기 using python json string sort (0) | 2021.12.16 |
댓글