티스토리 뷰
Keyword: 정규표현식이란, 정규표현식의 유용성
1. 정규표현식이란

정규표현식은 파이썬뿐만의 기능은 아니다. 문자열을 다루는 여러 곳에서 사용되는 공통적인 표현식이다. 기호가 다소 복잡하여 이해하기 어려울 수 있지만, 어떠한 일련의 문자열을 패턴화해서 사용하기 매우 유용한 방법이다.
2. 정규표현식의 유용성


이제 정규표현식이 왜 유용한가에서 살펴보도록 하자. 위를 보면 peoples라는 변수에 '이름 : 전화번호'의 형식으로 연속된 정보 3개가 저장되어 있는 것을 확인할 수 있다. 이 문자열의 각 사람의 전화번호 끝 4자리를 XXXX형식으로 변경하고자 한다. 그러기 위해서는 리스트를 하나 만들고, 리스트를 공백으로 쪼개고, 쪼객 문자열이 13자이고(전화번호형식)이고, 인덱스 0에서 2번까지, 4에서 7번까지 9에서 12까지가 숫자 형식이면, 앞의 8자리를 그대로 슬라이싱하고, '-XXXX'의 문자열과 합치고, 이를 phone_x에 append한다. 그리고, peoples_new라는 변수를 선언하여 공백을 기준으로 phone_x의 값을 join하고 print한다. 굉장히 복잡한 과정임을 알 수 있다. 참고로 if문과 대비되는 else문은 '이름:'을 append할 수 있다.

정규표현식을 사용하기 위해서는 re를 import해야 한다. 그리고 re의 sub함수를 사용한다. 함수 인자 안에는 "기존 문자열의 패턴, 바꿀 문자열의 패턴, 문자열'이 들어간다. 위 정규 표현식으로 해석하자면, r은 ' '(작은 따옴표)안에 있는 것들이 정규 표현식이라는 것을 나타내는 것이다. f-string에서 문자열 밖에 f를 하는 것과 같은 역할이다. 작은 따옴표 안에서는 괄호를 통해서 그룹화를 진행하고, 해당 그룹에 있는 값은 "d(십진수) {3} 3자리[-]하이픈 1개\그리고 d{4} (십진수 4자리)"라는 의미이고, 소괄호 밖에는 "[-]하이픈 1개 d{4}십진수 4자리"라는 의미이다. 즉 먼저 문자열의 패턴을 입력하고, 이것을 어떻게 처리할 것인가에 대해서 입력한다. r은 역시 정규 표현식임을 나타내는 표현이고, ' ' 안에 g<1>은 앞서 소괄호로 묶은 그룹 첫번째를 의미하고, -XXXX는 [-]d{4}가 대치될 형식이다. 그리고 마지막에 문자열을 입력하면 된다. 정규 표현식으로 지정한 방식으로 문자열과 매칭이 되어, 사용자가 지정한 형식으로 출력이 되게 된다. 위 출력을 보면 각 전화번호 끝자리가 'XXXX'처리 된 것을 확인할 수 있다.
아래 셀의 경우, 문자열의 일련의 패턴을 re.compile()함수에 넣어 값을 pat 변수에 입력한다. 이는 미리 정규표현식을 컴파일하여 변수에 넣어 여러번 사용할 때 유용하게 사용된다. 그리고, 이를 sub 함수에 넣고 정규 표현식 형식으로 사용한다. 이때는 기존 문자열의 정규 표현식 패턴을 인자로 입력하지 않아도 된다.
'개발자 로그 > Python' 카테고리의 다른 글
| [실습] 엑셀 파일 다루기 (0) | 2024.09.11 |
|---|---|
| [실습] 워드 클라우드 (0) | 2024.09.11 |
| 함수 (0) | 2024.09.10 |
| 제어문(조건문, 반복문) (0) | 2024.09.09 |
| 딕셔너리(dictionary) 자료형 (0) | 2024.09.06 |
- Total
- Today
- Yesterday
- 리스트 요소 대문자 변환
- model context protocol
- 조회 및 슬라이싱
- 딕셔너리 변경 및 추가
- list에서의 사용되는 for문
- 스마트워치2025
- list comprehention
- 엑셀파이썬
- 배열만들기
- list_avg
- 날짜 시간 자료형
- 정규표현식이란
- 인덱싱과 슬라이싱 불가
- 요소가 하나인 튜플
- 튜플은 immutable
- 정규표현식의 유용성
- 리스트 요소 변경
- legb 규칙
- cladue mcp
- 넘파이 불러오기
- 문자열 콤마
- 튜플 안에 리스트 요소는 변경이 가능
- 클로드 mcp
- 같은 key는 무시
- 조건 조회
- 리스트 더하기
- 함수의 형태
- 딕셔너리의 자료형
- 리스트 곱하기
- 중복 x
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |