반응형
파이썬 정규식만으로도 여러 책이 출판되어 나와 있을 정도로 정규식의 세계는 매우 방대합니다. 파이썬 뿐만 아니라 많은 언어에서 정규식이라는 스킬은 중요하게 사용됩니다.
오늘은 정규식을 활용하여 문자열에서 .exe 실행파일명만 추출해보겠습니다.
import re
p = re.compile(r'[\w|.]*[.]exe')
data = '''
실행 파일 test.exe를 다운로드 받으세요.
test1.exe, test_v1.0.exe도 다운로드 받으세요.
한글.exe
테스트 이미지 파일 what.png, rena.jpg도 다운로드 받으세요.
'''
exe_list = p.findall(data)
print(exe_list)

보시다시피 exe 파일명만 잘 추출해냈습니다. 사용된 패턴의 의미를 살펴보겠습니다.
[\w|.]*[.]exe
이 패턴은 크게 [\w|.]* 와 [.]exe 두 부분으로 나눌 수 있습니다. 뒷 부분은 .exe 패턴이니 비교적 쉽게 이해할 수 있으니 앞 부분을 조금 더 깊이 살펴보겠습니다.
[\w|.]*에서 \w는 영문자와 숫자 그리고 _를 포함합니다. 그리고 |는 "or"의 의미를 갖습니다. 즉, [\w|.]의 의미는 영문자와 숫자, _와 .이 됩니다. *은 그러한 문자들이 0개 이상 반복된다는 뜻입니다.
관련 글
- [python] 문자열에서 010-1234-5678 형태의 전화번호만 추출하기(정규식)
참고자료
[1] https://wikidocs.net/1669 점프 투 파이썬, 08장 정규표현식
[2] https://k9n.me/%ED%8C%8C%EC%9D%BC-%EB%AA%85%EB%AA%85-%EA%B7%9C%EC%B9%99-dd62063a1f2d 파일 명명 규칙
'Dev > python' 카테고리의 다른 글
| [python] 제너레이터의 필요성(메모리 효율성) (0) | 2023.01.16 |
|---|---|
| [pandas] 데이터프레임의 행들을 반복문에서 얻고 싶다면, df.iterrows() (0) | 2023.01.14 |
| [python] *args, **kwargs란? (0) | 2023.01.13 |
| [python] 두 개의 리스트를 동시에 이터레이션하려면 zip 함수 사용 (0) | 2023.01.13 |
| [python] 문자열에서 010-1234-5678 형태의 전화번호만 추출하기(정규식) (0) | 2023.01.11 |
| [python] 메모장에 데이터 쓰고, 추가하고, 읽기 (with 구문) (0) | 2023.01.10 |
| [python] memcached에 캐시 데이터 쓰고 읽기(pymemcache) (0) | 2023.01.09 |
| [python] Redis에 데이터 쓰고 읽기 (0) | 2023.01.08 |