python-str관리
import re
gggg21
2025. 3. 8. 20:14
python의 내장 라이브러리로 따로 설치가 필요하지 않습니다
text = "Hello!! This is a sample text with numbers 123 and special characters %$#."
import re
clean_text = re.sub(r'[^a-zA-Z\s]', '', text)
print(clean_text)
# 출력: 'Hello This is a sample text with numbers and special characters '
규표현식설명예제 입력결과
`^\s+ | \s+$` | 문자열 양쪽 공백 제거 | " Hello, World! " |
\s+ | 모든 공백 제거 | " Hello, World! " | "Hello,World!" |
\s+ → ' ' | 연속된 공백을 하나의 공백으로 변환 | "Hello, World! " | "Hello, World!" |
\s*([,.!?])\s* → \1 | 문장부호 앞뒤 공백 제거 | "Hello , World !" | "Hello, World!" |
대체 라이브러리 비교
라이브러리장점단점사용 예
re (내장) | 빠름, 간단함, 설치 필요 없음 | 복잡한 패턴이 가독성을 해칠 수 있음 | 일반적인 정규 표현식 활용 |
regex (pip install regex) | re보다 강력함, Unicode 지원 강화, Lookbehind 제약 없음 | 별도 설치 필요, 속도가 re보다 약간 느릴 수 있음 | 한글, 중국어 등 다국어 처리, 복잡한 정규식 |
pandas.str.extract | pandas에서 사용하기 쉬움, 벡터 연산 최적화 | pandas 종속, 정규 표현식 성능 자체는 re와 유사 | 데이터프레임에서 정규표현식 활용 |
flashtext (pip install flashtext) | 특정 키워드 추출 속도가 매우 빠름 | 단순 키워드 탐색만 가능 (re 같은 패턴 지원 X) | 대량의 키워드 탐색, 빠른 문자열 검색 |
pyahocorasick (pip install pyahocorasick) | 최고 속도, Aho-Corasick 알고리즘 기반 | 설치 필요, 정규 표현식 지원 X | 대량 패턴 검색, 문서 필터링 |