Algorithm_study/문법

Python_re.findall()

oaho 2023. 5. 4. 01:29
반응형

정규 표현식(Regular Expression) : 문자열에서 특정한 패턴을 찾거나 대체, 추출하는 데 사용되는 문자열 패턴

'\d' : 숫자를 의미함

'\w' : 문자나 숫자, 밑줄 문자(_)를 의미함

'\s' : 공백 문자를 의미함

'+' : 바로 앞에 있는 문자나 문자 클래스가 한 번 이상 반복되는 패턴을 찾음

'{m, n}' : 바로 앞에 있는 문자나 문자 클래스가 m번 이상, n번 이하로 반복되는 패턴을 찾음

 

ex) 숫자 2개를 추출하기 위한 정규 표현식 : r'\d{2}' <= 숫자(\d)가 2번({2}) 반복되는 패턴을 찾는 것

 

re.findall(pattern, string, flags=0) : 문자열(string)에서 정규 표현식(pattern)에 매칭되는 모든 부분을 찾아 리스트로 반환한다.

- pattern : 찾고자 하는 문자열 패턴을 나타내는 정규 표현식

- string : 검색 대상이 되는 문자열

- flags : 검색시 옵션을 지정 일반적으로 디폴트 값 0을 사용

 

위에 정규 표현식을 참고해서 코드를 작성해보았다.

 

<이어져있는 문자열 구하기>

import re

s = "The quick brown fox jumps over the lazy dog"
result = re.findall(r'\w+', s)

print(result)

결과 : 

['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

 

<숫자만 구하기>

string = "15er34efea456"
number = re.findall(r'\d+', string)
print(number)

결과:

['15', '34', '456']

 

 

're'모듈에서 주로 사용되는 함수

re.search(pattern, string, flags=0) : 주어진 문자열(string)에서 정규 표현식(pattern)과 매칭되는 첫 번째 부분을 찾는다. 매칭되는 부분이 없으면 None을 반환한다.
re.match(pattern, string, flags=0) : 문자열(string)의 시작부터 정규 표현식(pattern)과 매칭되는지 검사한다. 매칭되는 부분이 없으면 None을 반환한다.
re.findall(pattern, string, flags=0) : 주어진 문자열(string)에서 정규 표현식(pattern)과 매칭되는 모든 부분을 찾아 리스트로 반환한다. 매칭되는 부분이 없으면 빈 리스트를 반환한다.
re.finditer(pattern, string, flags=0) : 주어진 문자열(string)에서 정규 표현식(pattern)과 매칭되는 모든 부분을 찾아 매칭 객체(match object)를 반환하는 이터레이터(iterator)를 반환한다.
re.sub(pattern, repl, string, count=0, flags=0) : 주어진 문자열(string)에서 정규 표현식(pattern)과 매칭되는 부분을 찾아 다른 문자열(repl)로 대체한다.
re.split(pattern, string, maxsplit=0, flags=0) : 주어진 문자열(string)을 정규 표현식(pattern)으로 분리하고, 분리된 문자열을 리스트로 반환한다.

반응형

'Algorithm_study > 문법' 카테고리의 다른 글

[Python] 연산자 in, not in  (1) 2023.12.05
deque  (0) 2023.08.03
Python_math.comb()  (0) 2023.05.02
Python_itertools모듈의 combinations함수  (0) 2023.04.28
Python_문자열 뒤집기  (0) 2023.04.28