반응형
re.findall
함수는 파이썬의 re
모듈에서 제공하는 함수로, 주어진 문자열에서 정규 표현식 패턴과 일치하는 모든 부분 문자열을 찾아 리스트로 반환합니다. re.findall
은 패턴이 문자열에서 일치하는 모든 부분을 검색하여 결과를 리스트로 제공합니다.
1. re.findall
사용법
import re
result = re.findall(pattern, string, flags=0)
pattern
: 정규 표현식 패턴입니다.string
: 검색할 문자열입니다.flags
: 선택적 인수로, 정규 표현식의 동작을 수정하는 플래그입니다.
2. 플래그
re.IGNORECASE
또는re.I
: 대소문자를 구분하지 않습니다.re.MULTILINE
또는re.M
: 여러 줄 모드.^
및$
가 각 줄의 시작과 끝을 의미하게 됩니다.re.DOTALL
또는re.S
: 점(.
)이 개행 문자(\n
)도 포함하도록 합니다.
3. 예제와 출력
1. 기본 예제
import re
# 예제 문자열
string = "The rain in Spain stays mainly in the plain."
# 정규 표현식 패턴
pattern = r"\bin\b"
# re.findall을 사용하여 일치하는 부분 찾기
matches = re.findall(pattern, string)
print(matches)
출력:
['in', 'in']
2. 숫자 찾기 예제
import re
# 예제 문자열
string = "My phone number is 123-456-7890. Call me at 987-654-3210."
# 정규 표현식 패턴
pattern = r"\d{3}-\d{3}-\d{4}"
# re.findall을 사용하여 일치하는 부분 찾기
matches = re.findall(pattern, string)
print(matches)
출력:
['123-456-7890', '987-654-3210']
3. 대소문자 무시 예제
import re
# 예제 문자열
string = "Hello hello HeLLo hElLo"
# 정규 표현식 패턴
pattern = r"hello"
# re.findall을 사용하여 일치하는 부분 찾기 (대소문자 무시)
matches = re.findall(pattern, string, re.IGNORECASE)
print(matches)
출력:
['Hello', 'hello', 'HeLLo', 'hElLo']
4. 그룹화 예제
import re
# 예제 문자열
string = "My email is example@test.com and test@example.com."
# 정규 표현식 패턴
pattern = r"(\w+)@(\w+)\.(\w+)"
# re.findall을 사용하여 일치하는 부분 찾기
matches = re.findall(pattern, string)
print(matches)
출력:
[('example', 'test', 'com'), ('test', 'example', 'com')]
5. 여러 줄 모드 예제
import re
# 예제 문자열
string = """Start of string
Pattern in line 1
Pattern in line 2
End of string"""
# 정규 표현식 패턴
pattern = r"^Pattern"
# re.findall을 사용하여 일치하는 부분 찾기 (여러 줄 모드)
matches = re.findall(pattern, string, re.MULTILINE)
print(matches)
출력:
['Pattern', 'Pattern']
이 예제들은 re.findall
함수를 사용하여 문자열에서 정규 표현식 패턴과 일치하는 모든 부분을 찾는 방법을 보여줍니다. 각 예제는 실제로 실행 가능한 코드와 그에 따른 출력을 포함하고 있습니다. re.findall
은 일치하는 모든 항목을 리스트로 반환하기 때문에, 특정 패턴을 여러 번 검색할 때 유용합니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 글 작성시 흔히 하는 실수를 정규 표현식으로 찾기 (2) | 2024.07.21 |
---|---|
[ Python ] re.findall()과 group() 메서드 사용하기 (0) | 2024.07.21 |
[ Python ] re.search() 사용하기 (이름 찾기) (0) | 2024.07.21 |
[ Python ] re.match() 사용하기 (전화번호) (0) | 2024.07.21 |
[ Python ] 정규 표현식에서 패턴 수량자에 대해서 알아보기 (0) | 2024.07.21 |