⊗pyPmRESF 73 of 129 menu

Python 정규식 플래그

정규식 작업 메서드의 선택적 매개변수 중 하나로 플래그를 설정하려면 다음 구문을 사용합니다:

flags=re.플래그 이름

정규식 작업을 위한 주요 플래그

플래그 목적
re.IGNORECASE 문자 대소문자 무시.
re.DOTALL 점(.)이 줄 바꿈을 포함한 모든 문자와 일치하도록 합니다.
re.I 대소문자를 구분하지 않는 검색을 수행합니다.
re.L 현재 언어에 따라 단어를 검색합니다. 이 해석은 알파벳 그룹(\w\W)과 단어 경계 동작(\b\B)에 영향을 미칩니다.
re.M 문자 $가 텍스트 끝뿐만 아니라 모든 줄의 끝에서 검색을 수행하고, 문자 ^가 텍스트 시작뿐만 아니라 모든 줄의 시작에서 검색을 수행합니다.
re.S (.)의 의미를 새 줄을 포함한 모든 문자와 일치하도록 변경합니다.
re.U Unicode 문자 집합에 따라 문자를 해석합니다. 이 플래그는 \w, \W, \b, \B의 동작에 영향을 미칩니다. Python 3+에서는 이 플래그가 기본적으로 설정되어 있습니다.
re.X 정규식의 다중 줄 구문을 허용합니다. 패턴 내의 공백([] 집합 내부의 공백이나 백슬래시로 이스케이프된 경우 제외)을 무시하고, 이스케이프되지 않은 '#'를 주석으로 처리합니다.

예시

re.IGNORECASE 플래그를 사용하여 문자 대소문자를 무시할 수 있습니다. 어떻게 하는지 알아보겠습니다. 이 예시에서 정규식은 소문자만 찾습니다:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

코드 실행 결과:

'! ! CCC DDD'

예시

이제 메서드의 네 번째 매개변수에 re.IGNORECASE 플래그를 추가하면 정규식이 모든 대소문자의 문자를 검색하기 시작합니다:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

코드 실행 결과:

'! ! ! !'

예시

정규식으로 모든 줄 바꿈을 찾아보겠습니다:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

실행된 코드 결과:

'aaa!bbb'

예시

하지만, 모든 문자를 바꾸려면 정규식에 점을 넣어도 줄 바꿈은 잡히지 않습니다:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

실행된 코드 결과:

'!!! !!!'

예시

이 오류를 수정하려면 re.DOTALL 플래그를 적용해야 합니다:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

실행된 코드 결과:

'!!!!!!!'

예시

매개변수에 + 연산자를 사용하여 여러 플래그를 전달할 수도 있습니다. 먼저 줄 끝의 문자 'a'를 바꿔보겠습니다:

txt = ''' aaa AAA aaa''' res = re.sub('aaa$', '!', txt) print(res)

실행된 코드 결과:

''' aaa AAA ! '''

예시

이제 re.M 플래그를 설정해 보겠습니다:

res = re.sub('aaa$', '!', txt, flags=re.M) print(res)

실행된 코드 결과:

''' ! AAA ! '''

예시

이제 대소문자 무시 플래그도 적용해 보겠습니다:

res = re.sub('aaa$', '!', txt, flags=re.M+re.IGNORECASE) print(res)

실행된 코드 결과:

''' ! ! ! '''
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부