반응형
파이썬에서 정규 표현식(Regular Expression, Regex)은 문자열에서 특정 패턴을 찾거나 변환하는 데 사용됩니다. 파이썬의 re
모듈을 사용하면 정규 표현식을 사용할 수 있습니다. 정규 표현식의 기본 구성 요소는 다음과 같습니다:
1. 리터럴 문자(Literal Characters)
문자 자체를 의미합니다.
- 예:
a
,1
,@
등
2. 메타 문자(Metacharacters)
특정 패턴을 나타내는 특별한 의미를 가진 문자들입니다.
.
: 개행 문자를 제외한 모든 단일 문자와 일치^
: 문자열의 시작을 의미$
: 문자열의 끝을 의미*
: 앞의 문자가 0번 이상 반복됨을 의미+
: 앞의 문자가 1번 이상 반복됨을 의미?
: 앞의 문자가 0번 또는 1번 나타남을 의미{}
: 특정 횟수만큼 반복됨을 의미 (예:{3}
은 정확히 3번,{3,}
은 3번 이상,{3,5}
은 3번에서 5번까지)[]
: 문자 클래스 (character class) 정의. 대괄호 안의 문자 중 하나와 일치|
: OR 연산자, 두 패턴 중 하나와 일치()
: 그룹화, 그룹을 만들어 부분 일치를 검출하고 캡처함
3. 문자 클래스(Character Classes)
대괄호 안에 문자를 넣어 특정 문자 집합을 정의합니다.
[abc]
:a
,b
,c
중 하나[a-z]
: 소문자 알파벳 중 하나[A-Z]
: 대문자 알파벳 중 하나[0-9]
: 숫자 중 하나[^abc]
:a
,b
,c
가 아닌 문자
4. 특수 시퀀스(Special Sequences)
백슬래시와 결합하여 특정 패턴을 나타냅니다.
\d
: 숫자와 일치 ([0-9]
와 동일)\D
: 숫자가 아닌 문자와 일치 ([^0-9]
와 동일)\w
: 단어 문자와 일치 (영문자, 숫자, 밑줄 포함) ([a-zA-Z0-9_]
와 동일)\W
: 단어 문자가 아닌 문자와 일치 ([^a-zA-Z0-9_]
와 동일)\s
: 공백 문자와 일치 (공백, 탭, 줄바꿈 등)\S
: 공백 문자가 아닌 문자와 일치\b
: 단어 경계 (word boundary)와 일치\B
: 단어 경계가 아닌 위치와 일치
5. 이스케이프 문자(Escape Characters)
특수 문자를 리터럴로 인식시키기 위해 백슬래시를 사용합니다.
- 예:
\\
,\*
,\.
등
6. 예제
import re
# 정규 표현식 패턴
pattern = r'\d{3}-\d{2}-\d{4}'
# 문자열
string = "My number is 123-45-6789."
# 패턴과 일치하는 부분 찾기
match = re.search(pattern, string)
if match:
print("Match found:", match.group())
else:
print("No match found.")
위 예제에서 패턴 \d{3}-\d{2}-\d{4}
는 세 자리 숫자, 두 자리 숫자, 네 자리 숫자가 하이픈으로 구분된 형식을 의미합니다. re.search
함수는 문자열에서 이 패턴과 일치하는 부분을 찾습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 정규 표현식에서 패턴 수량자에 대해서 알아보기 (0) | 2024.07.21 |
---|---|
[ Python ] 정규 표현식의 모든 메타 문자의 사용 예제 (1) | 2024.07.21 |
[ Python ] 정규 표현식에 플래그 (flag) 사용하기 (1) | 2024.07.10 |
[ Python ] 정규 표현식을 컴파일 해서 사용하자. (0) | 2024.07.10 |
[ Python ] 정규 표현식으로 전화번호 추출하기 (0) | 2024.07.10 |