티스토리 뷰
re.compile() 함수는 정규식 패턴을 정규식 객체로 컴파일하는 데 사용된다. 그런 다음 이 객체를 사용해 문자열과 일치시키거나 문자열 내에서 패턴을 검색할 수 있다. 정규식을 객체로 컴파일하면 몇 가지 이점이 있다.
- 효율성
: 정규식 패턴을 객체로 컴파일하면 패턴이 분석돼 매칭에 최적화된 내부 형식으로 한 번만 변환된다. 동일한 패턴을 여러 번 사용하려는 경우 한 번 컴파일하고 객체를 재사용하는 것이 re.match(), re.search() 등의 함수에서 패턴을 직접 사용할 때마다 다시 해석하는 것보다 더 효율적이다. - 재사용 가능성
: 정규식 객체는 일단 컴파일되면 여러 문자열에 걸쳐 여러 번 재사용할 수 있다. 이렇게 하면 코드가 더 깔끔해질 뿐만 아니라 패턴이 한 곳에 정의되므로 유지 관리도 더 쉽다. - 추가 메소드
: 컴파일된 정규식 객체는 .match(), .search(), .findall(), .finditer(), .sub() 등과 같은 패턴 매칭을 위한 여러 메소드를 제공한다. 이러한 메소드는 re 모듈에서 제공되는 함수와 유사하게 작동하지만 컴파일된 패턴을 사용된다. - 패턴 구성
: 패턴을 컴파일할 때 인자로 플래그를 전달해 패턴의 동작을 수정할 수도 있다. 예를 들어, re.IGNORECASE를 사용하면 패턴의 대소문자를 구분하지 않고, re.MULTILINE은 여러 줄 문자열의 맥락에서 ^ 및 $ 작동 방식을 변경하고, re.DOTALL은 점(.)이 줄 바꿈을 포함한 모든 문자와 일치하도록 할 수 있다.
import re
text = "Steve's phone number is 123-456-7890."
pattern = re.compile(r'(\d{3})-(\d{3})-(\d{4})')
print(type(pattern), pattern)
# <class 're.Pattern'> re.compile('(\\d{3})-(\\d{3})-(\\d{4})')
match = pattern.search(text)
if match:
print(match.group())
# 123-456-7890
반응형
'기술(Tech, IT) > 파이썬(Python)' 카테고리의 다른 글
[Tech, Python] \b (정규식) (0) | 2024.03.14 |
---|---|
[Tech, Python] re.group() (3) | 2024.03.13 |
[Tech, Python] re.escape (0) | 2024.03.02 |
[Python] raw strings (0) | 2024.01.07 |
[Python] SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape (0) | 2024.01.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Computer Graphics
- 파이썬
- 투 포인터
- Hash Map
- vertex shader
- socket programming
- java
- The Economist
- machine learning
- 티스토리챌린지
- 리트코드
- tf-idf
- ml
- min heap
- 이코노미스트 에스프레소
- 소켓 프로그래밍
- Python
- Android
- C++
- leetcode
- 이코노미스트
- 안드로이드
- I2C
- DICTIONARY
- The Economist Espresso
- join
- 딕셔너리
- 머신 러닝
- 오블완
- defaultdict
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함
반응형