Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

행복한 개구리

Python 공부내용 21.10.29. Python - RegEx 본문

Python/공부내용

Python 공부내용 21.10.29. Python - RegEx

HappyFrog 2021. 10. 29. 17:31

W3Schools의 Python Tutorial을 보며 해석하고 정리한 글입니다.

오역이 존재할 수 있습니다

저도 파이썬은 처음이니 가볍게 봐주세요 :D 

W3Schools


파이썬 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  모듈의 함수들은 조건에 맞는 문자열을 검색할 수 있게 해줍니다.

출처 W3Schools

 

메타문자

메타문자들은 특정한 의미들을 가집니다.

출처 W3Schools

 

특수 시퀀스

특별한 의미를 지닌 특수 시퀀스들은  뒤에 한 글자를 적어줌으로서 사용가능하며 아래 리스트에 포함되는 것들을 사용할 수 있습니다.

출처 W3Schools

 

세트(집합)

세트는 특별한 의미를 가진 한 쌍의 대괄호  [ ]  안에있는 문자 집합입니다.

출처 W3Schools

 

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  이 반환됩니다.