반응형
정규 표현식에서 flag는 특정한 모드를 설정하여 패턴 매칭의 동작을 변경하거나 확장하는 데 사용됩니다. Python의 re
모듈에서 flag는 여러 가지 옵션을 제공하며, 주로 다음과 같은 flag가 사용됩니다:
re.IGNORECASE
(re.I
): 대소문자를 구분하지 않고 매칭합니다. 예를 들어,re.search('a', 'Apple', re.IGNORECASE)
는 매칭됩니다.re.MULTILINE
(re.M
): 여러 줄 모드로, 문자열의 여러 줄을 각각 개별적으로 취급합니다. 이 모드에서는^
와$
가 각각 줄의 시작과 끝을 나타냅니다.re.DOTALL
(re.S
): 점(.)이 개행 문자를 포함하여 모든 문자와 매칭되도록 합니다. 기본적으로 점(.)은 개행 문자를 제외한 모든 문자와 매칭됩니다.re.VERBOSE
(re.X
): 정규 표현식을 이해하기 쉽게 여러 줄로 작성하고, 주석을 포함할 수 있게 합니다. 패턴 내에서 공백과 주석을 무시합니다. 이를 통해 더 읽기 쉬운 정규 표현식을 작성할 수 있습니다.re.ASCII
(re.A
): 유니코드 문자열에서도\w
,\W
,\b
,\B
,\d
,\D
,\s
,\S
등의 매칭을 ASCII 문자로 제한합니다.re.LOCALE
(re.L
): 로케일 설정에 따라\w
,\W
,\b
,\B
등의 매칭을 변경합니다. 이 옵션은 잘 사용되지 않으며, 대신re.ASCII
나 유니코드 모드를 사용하는 것이 권장됩니다.
각 flag는 개별적으로 또는 여러 개를 결합하여 사용할 수 있습니다. 예를 들어, 대소문자를 구분하지 않으면서 여러 줄 모드로 매칭하려면 re.IGNORECASE | re.MULTILINE
과 같이 사용할 수 있습니다.
예제 코드
다음은 여러 flag를 사용하는 예제입니다:
import re
pattern = r'^hello'
text = '''Hello world
hello Python'''
# 대소문자 구분 없이, 여러 줄 모드로 매칭
matches = re.findall(pattern, text, re.IGNORECASE | re.MULTILINE)
print(matches)
이 예제에서 re.IGNORECASE | re.MULTILINE
flag를 사용하여 Hello world
와 hello Python
두 줄 모두에서 매칭된 결과를 반환합니다.
이러한 flag를 사용하면 정규 표현식을 더 유연하고 강력하게 사용할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 정규 표현식의 모든 메타 문자의 사용 예제 (1) | 2024.07.21 |
---|---|
[ Python ] 정규 표현식의 기본 구성 요소 (0) | 2024.07.20 |
[ Python ] 정규 표현식을 컴파일 해서 사용하자. (0) | 2024.07.10 |
[ Python ] 정규 표현식으로 전화번호 추출하기 (0) | 2024.07.10 |
[ Python ] 정규 표현식 사용하기 (0) | 2024.07.10 |