파이썬 정규식만으로도 여러 책이 출판되어 나와 있을 정도로 정규식의 세계는 매우 방대합니다. 파이썬 뿐만 아니라 많은 언어에서 정규식이라는 스킬은 중요하게 사용됩니다.
오늘은 정규식을 활용하여 문자열에서 .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 |