Python RegEx
- 이전 페이지 Python JSON
- 다음 페이지 Python PIP
RegEx 또는 정규 표현식은 검색 패턴을 형성하는 문자 시리즈입니다.
RegEx는 문자열이 지정된 검색 패턴을 포함하는지 확인하는 데 사용됩니다.
RegEx 모듈을 제공합니다.
Python은 이름을 re
의 내장 패키지로, 정규 표현식을 처리할 수 있습니다.
임포트 re
모듈:
import re
Python의 RegEx
임포트 re
모듈을 임포트한 후에는 정규 표현식을 사용할 수 있습니다:
예제
문자열이 "China"으로 시작하고 "country"으로 끝나는지 확인합니다:
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
RegEx 함수
re
모듈은 정규 표현식을 처리하는 데 사용할 수 있는 함수 집합을 제공합니다:
함수 | 설명 |
---|---|
findall | 모든 일치 항목을 포함한 목록을 반환합니다 |
search | 문자열의 어느 위치에서도 일치가 있으면 Match 객체를 반환합니다 |
split | 매번 일치할 때마다 문자열을 분할하는 목록을 반환합니다 |
sub | 한 번 이상의 일치 항목을 문자열로 대체합니다 |
메타 문자
메타 문자는 특수 의미를 가진 문자입니다:
문자 | 설명 | 예제 | TIY |
---|---|---|---|
[] | 한 집합의 문자 | "[a-m]" | 시도해 보세요 |
\ | 특수 시퀀스(특수 문자를 응축할 수도 있습니다) | "\d" | 시도해 보세요 |
. | 모든 문자(newline 제외) | "he..o" | 시도해 보세요 |
^ | 시작말암 | "^hello" | 시도해 보세요 |
$ | 끝말암 | "world$" | 시도해 보세요 |
* | 제로 번이나 여러 번 등장 | "aix*" | 시도해 보세요 |
+ | 한 번이나 여러 번 등장 | "aix+" | 시도해 보세요 |
{} | 정확히 지정된 등장 횟수 | "al{2}" | 시도해 보세요 |
| | 둘 중 하나 | "falls|stays" | 시도해 보세요 |
() | 포획과 그룹화 |
특수 시퀀스
특수 시퀀스는 다음과 같습니다 \
다음 표의 특수 문자 중 하나와 함께 사용되면 특수 의미를 가집니다:
문자 | 설명 | 예제 | TIY |
---|---|---|---|
\A | 지정된 문자가 문자열의 시작에 있으면 일치 항목을 반환합니다 | "\AThe" | 시도해 보세요 |
\b | 지정된 문자가 단어의 시작 또는 끝에 있는 일치 항목을 반환합니다 |
r"\bain" r"rain\b" |
시도해 보세요 시도해 보세요 |
\B | 지정된 문자가 단어의 시작(또는 끝)에 없는 일치 항목을 반환합니다 |
r"\Bain" r"rain\B" |
시도해 보세요 시도해 보세요 |
\d | 문자열이 숫자(0-9)를 포함하는 일치 항목을 반환합니다 | "\d" | 시도해 보세요 |
\D | 숫자를 포함하지 않는 문자열의 일치 항목을 반환합니다 | "\D" | 시도해 보세요 |
\s | 공백 문자를 포함하는 문자열의 일치 항목을 반환합니다 | "\s" | 시도해 보세요 |
\S | 공백 문자를 포함하지 않는 문자열의 일치 항목을 반환합니다 | "\S" | 시도해 보세요 |
\w | 문자열이 어떤 단어 문자를 포함하는 일치 항목을 반환합니다 a부터 Z까지의 문자, 0부터 9까지의 숫자와 언더스코어 문자 _ |
"\w" | 시도해 보세요 |
\W | 문자열이 어떤 단어 문자도 포함하지 않는 일치 항목을 반환합니다 | "\W" | 시도해 보세요 |
\Z | 지정된 문자가 문자열의 끝에 있으면 일치 항목을 반환합니다 | "스페인\Z" | 시도해 보세요 |
셋(셋)
집합(Set)은 쌍 괄호입니다 []
내의 그룹 문자는 특별한 의미를 가집니다:
집합 | 설명 | 시도해 보세요 |
---|---|---|
[arn] | 지정된 문자(a, r 또는 n) 중 하나가 있는 일치를 반환합니다: | 시도해 보세요 |
[a-n] | a와 n 사이의 어떤 소문자 일치를 반환합니다: | 시도해 보세요 |
[^arn] | a, r, n 이외의 어떤 문자든 일치하는 것을 반환합니다: | 시도해 보세요 |
[0123] | 지정된 숫자(0, 1, 2 또는 3) 중 하나가 있는 일치를 반환합니다: | 시도해 보세요 |
[0-9] | 0과 9 사이의 어떤 숫자든 일치하는 것을 반환합니다: | 시도해 보세요 |
[0-5][0-9] | 0에서 9 사이의 어떤 숫자든 일치하는 것을 반환합니다: | 시도해 보세요 |
[a-zA-Z] | 소문자 또는 대문자로서 a와 z 사이의 어떤 문자든 일치하는 것을 반환합니다: | 시도해 보세요 |
[+] | 집합에서 +, *, ., |, (), $, {}는 특별한 의미가 없으므로 [+]는 다음과 같이 표시됩니다: | 시도해 보세요 |
findall() 함수
findall()
함수는 모든 일치 항목을 포함하는 리스트를 반환합니다。
예제
모든 일치 항목의 리스트를 출력합니다:
import re str = "China is a great country" x = re.findall("a", str) print(x)
이 리스트는 찾은 순서로 일치 항목을 포함합니다。
일치 항목을 찾지 못하면 빈 리스트를 반환합니다:
예제
일치를 찾지 못하면 빈 리스트를 반환합니다:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
search() 함수
search()
함수는 문자열에서 일치를 검색하고 일치가 있으면 Match 객체를 반환합니다。
여러 일치가 있더라도 첫 번째 일치만 반환합니다:
예제
문자열에서 첫 번째 공백 문자를 검색합니다:
import re str = "China is a great country" x = re.search("\s", str) print("The first white-space character is located in position:", x.start())
일치를 찾지 못하면 반환 값 None
:
예제
일치를 반환하지 않는 검색을 수행합니다:
import re str = "China is a great country" x = re.search("USA", str) print(x)
split() 함수
split()
함수는 매번 일치할 때마다 문자열을 분할하는 리스트를 반환합니다:
예제
각 공백 문자에서 분할합니다:
import re str = "China is a great country" x = re.split("\s", str) print(x)
지정하여 사용할 수 있습니다. maxsplit
파라미터를 사용하여 나타나는 횟수를 제어합니다:
예제
첫 번째로 나타나는 곳에서만 문자열을 분할합니다:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
sub() 함수
sub()
함수는 선택한 텍스트로 대체할 수 있습니다:
예제
각 공백 문자를 숫자 9으로 대체합니다:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
지정하여 사용할 수 있습니다. count
替换次数를 제어하는 매개변수:
예제
처음 두 번 나타나는 것을 대체:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Match 객체
Match 객체는 검색 및 결과 정보를 포함하는 객체입니다.
주석:일치 항목이 없으면 반환 값 None
Match 객체 대신 사용.
예제
검색은 Match 객체를 반환합니다:
import re str = "China is a great country" x = re.search("a", str) print(x) # 객체를 출력합니다
Match 객체는 검색 및 결과 정보를 얻기 위한 속성과 메서드를 제공합니다:
span()
반환된 튜플은 일치하는 시작 및 종료 위치를 포함합니다.string
함수에 전달된 문자열을 반환group()
일치하는 문자열 부분을 반환
예제
처음 일치하는 위치(시작 및 종료 위치)를 출력.
대문자 "C"로 시작하는 모든 단어를 찾는 정규 표현식:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
예제
함수에 전달된 문자열을 출력:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
예제
일치하는 문자열 부분을 출력.
대문자 "C"로 시작하는 모든 단어를 찾는 정규 표현식:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
주석:일치 항목이 없으면 반환 값 None
Match 객체 대신 사용.
- 이전 페이지 Python JSON
- 다음 페이지 Python PIP