일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- dfs
- Unreal Engine 5
- github
- loop
- 프로그래밍
- python
- 문제풀이
- Algorithm
- dynamic
- Unity
- parameter
- UE5
- c++
- guide
- 오류
- Basic
- Class
- DP
- Tutorial
- Material
- 백준
- 재귀
- 기초
- w3school
- W3Schools
- String
- 시작해요 언리얼 2022
- C#
- Programming
- 파이썬
- Today
- Total
행복한 개구리
Python 공부내용 21.10.29. Python - RegEx 본문
W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.
오역이 존재할 수 있습니다
저도 파이썬은 처음이니 가볍게 봐주세요 :D
파이썬 RegEx
RegEx 또는 Regular Expression(정규 표현식)는 검색패턴을 형성하는 일련의 문자들입니다.
RegEx는 문자열에 지정한 검색패턴을 포함되어 있는지를 확인할 수 있습니다.
RegEx 모듈
파이썬은 re 라고 하는 빌트인 모듈이 존재하며 이 모듈은 Regular Expression(정규 표현식)으로 작업할 때 사용됩니다.
re 모듈 임포트하기:
import re
파이썬에서의 RegEx
당신이 re 모듈을 임포트했다면, 당신은 Regular Expression을 사용할 수 있게됩니다.
import re
txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
print(x)
RegEx 함수들
re 모듈의 함수들은 조건에 맞는 문자열을 검색할 수 있게 해줍니다.
메타문자
메타문자들은 특정한 의미들을 가집니다.
특수 시퀀스
특별한 의미를 지닌 특수 시퀀스들은 \ 뒤에 한 글자를 적어줌으로서 사용가능하며 아래 리스트에 포함되는 것들을 사용할 수 있습니다.
세트(집합)
세트는 특별한 의미를 가진 한 쌍의 대괄호 [ ] 안에있는 문자 집합입니다.
findall() 함수
findall() 함수는 검색값과 일치하는 모든 결과들을 포함한 리스트를 반환합니다.
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
검색값과 일치하는 결과들을 찾은 순서대로 리스트에 저장하여 반환합니다.
만약 일치하는 값이 없다면 빈 리스트가 반환됩니다.
import re
txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
search() 함수
search() 함수는 일치하는 문자열을 검색하며, 맞는 값이 존재한다면 그 값을 반환합니다.
만약 하나 이상의 일치하는 값이 존재한다면 처음 일치한 값이 반환됩니다.
import re
txt = "The rain in Spain"
x = re.search("\s", txt)
print("The first white-space character is located in position:", x.start())
만약 일치하는값이 존재하지 않는다면 None 이 반환됩니다.
import re
txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)
split() 함수
split() 함수는 문자열이 각 일치하는 값마다 분할되는 부분들의 리스트를 반환합니다.
import re
txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
당신은 발생한 값들의 수를 maxsplit 의 매개변수를 지정함으로써 조절할 수 있습니다.
import re
txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
sub() 함수
sub() 함수는 일치하는 값들을 당신이 선택한 텍스트로 대체합니다.
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
당신은 count 매개변수를 이용하여 대체할 값들의 수를 조절할 수 있습니다.
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
일치하는 객체(Match Object)
일치하는 객체는 검색과 결과의 정보를 담고있는 객체입니다.
참고 : 일치값이 없다면, 값은 객체 대신 None 으로 반환됩니다.
import re
txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) # this will print an object
일치값 객체는 검색값과 결과값에 대한 정보를 검색할 때 사용하는 프로퍼티와 메서드를 가지고있습니다.
- .span() 은 일치값의 시작및 끝위치를 포함하는 튜플은 반환합니다.
- .string 은 함수에 전달되는 문자열을 반환합니다.
- .group() 일치하는 문자열부분을 반환합니다.
#span()
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
#string
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
# group
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
참고 : 일치값이 없다면 일치값 객체 대신에 None 이 반환됩니다.
'Python > 공부내용' 카테고리의 다른 글
Python 공부내용 21.10.31. Python - PIP (0) | 2021.10.31 |
---|---|
Python 공부내용 21.10.27. Python - JSON (0) | 2021.10.27 |
Python 공부내용 21.10.26. Python - Math (0) | 2021.10.15 |
Python 공부내용 21.10.15. Python - Date (0) | 2021.10.15 |
Python 공부내용 21.10.13. Python - Modules (0) | 2021.10.13 |