728x90 IT 개발/정규식11 [정규식 마스터하기] Part 10: 고급 기법과 베스트 프랙티스 1. 모듈러 정규식 작성법패턴 라이브러리 구축class RegexPatterns: def __init__(self): # 기본 구성요소 self._components = { 'username': r'[a-zA-Z0-9_-]{3,16}', 'email': r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', 'ipv4': r'(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)', 'date': r'\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9.. 2025. 2. 22. [정규식 마스터하기] Part 9: 실전 활용 사례 1. 이메일 주소 검증기본적인 이메일 검증pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'고급 이메일 검증pattern = r'''(?x) ^[a-zA-Z0-9._%+-]+ # 로컬 파트 @ # @ 기호 [a-zA-Z0-9.-]+ # 도메인 \.[a-zA-Z]{2,} # 최상위 도메인 $'''2. URL 파싱URL 구성요소 추출pattern = r'''(?x) ^(?:(?Phttps?|ftp)://)? # 스키마 (?P[^:/\s]+) # 호스트명 (?::(?P\d+))? .. 2025. 2. 21. [정규식 마스터하기] Part 8: 정규식 최적화와 성능 1. 정규식 엔진의 동작 원리정규식 엔진 종류DFA (Deterministic Finite Automaton)선형 시간 복잡도백트래킹 없음메모리 사용량 많음NFA (Non-deterministic Finite Automaton)백트래킹 사용더 적은 메모리 사용대부분의 현대 정규식 엔진이 채택매칭 프로세스패턴 컴파일문자열 스캔백트래킹 처리결과 반환2. 백트래킹 이해와 최적화백트래킹이란?패턴 매칭 실패 시 이전 상태로 돌아가서 다른 경로 시도과도한 백트래킹은 성능 저하의 주요 원인백트래킹 최소화 기법# 나쁜 예pattern = ".*foo" # 모든 가능한 경우 시도# 좋은 예pattern = "[^f]*foo" # 불필요한 백트래킹 감소pattern = ".*?foo" # 게으른 수량자 사용3. .. 2025. 2. 20. [정규식 마스터하기] Part 7: 특수 패턴과 이스케이프 1. 특수 문자 이스케이프기본 이스케이프\: 백슬래시를 사용하여 특수 문자를 이스케이프이스케이프가 필요한 특수 문자들:^ $ . * + ? ( ) [ ] { } | \예시:# 실제 마침표를 찾기pattern = "\." # 마침표 매칭# 달러 기호 찾기pattern = "\$" # $ 매칭이스케이프 시퀀스의 활용괄호를 포함한 문자열 매칭pattern = "(hello)" # "(hello)" 매칭중괄호를 포함한 패턴pattern = "{test}" # "{test}" 매칭{test}" 매칭## 2\. 화이트스페이스 문자### 기본 화이트스페이스- \\s: 모든 화이트스페이스 문자 (공백, 탭, 줄바꿈 등)- \\S: 화이트스페이스가 아닌 문자- 구체적인 화이트스페이스 문자: - \.. 2025. 2. 19. [정규식 마스터하기] Part 6: 전방/후방 탐색 1. 전방/후방 탐색의 개념기본 개념전방 탐색(Lookahead): 현재 위치 뒤의 패턴을 확인후방 탐색(Lookbehind): 현재 위치 앞의 패턴을 확인매칭은 확인만 하고 소비하지 않음 (zero-width assertion)종류긍정형 전방 탐색: (?=pattern)부정형 전방 탐색: (?!pattern)긍정형 후방 탐색: (?부정형 후방 탐색: (?2. 긍정형 전방 탐색 (?=)기본 문법패턴: X(?=Y)설명: X 다음에 Y가 오는 경우의 X를 매칭실제 예제패턴: \w+(?=@gmail\.com)설명: gmail.com 주소를 가진 이메일의 사용자명만 매칭매칭 예제:텍스트: "user@gmail.com"결과: "user"텍스트: "admin@yahoo.com"결과: 매칭 없음3. 부정형 전방 탐색.. 2025. 2. 18. [정규식 마스터하기] Part 5: 그룹과 캡처 1. 그룹화 기본 ()기본 그룹화패턴: (abc)+설명: 'abc'를 하나의 그룹으로 처리하여 반복매칭:- "abc"- "abcabc"- "abcabcabc"그룹화의 장점반복 수량자 적용 가능그룹 전체를 하나의 단위로 처리캡처된 값을 나중에 참조 가능2. 캡처 그룹과 비캡처 그룹캡처 그룹패턴: ([a-z]+)-(\d+)설명: 문자열과 숫자를 각각 캡처예제:텍스트: "order-123"캡처 결과:- 그룹 1: "order"- 그룹 2: "123"비캡처 그룹 (?:)패턴: (?:[a-z]+)-(\d+)설명: 문자열은 캡처하지 않고 숫자만 캡처예제:텍스트: "order-123"캡처 결과:- 그룹 1: "123"3. 역참조 사용법기본 역참조패턴: ([a-z])\1설명: 같은 문자가 연속으로 두 번 나타나는 패턴.. 2025. 2. 17. 이전 1 2 다음 728x90