[python] 정규표현식 라이브러리 re, 그 활용 예제

2022. 10. 27. 17:36·프로그래밍/python
정규표현식 의미
. 하나의 문자와 일치
[ ] [] 안의 문자열은 수서 상관없이 포함된 문자와 일치
[^ ] [] 안에 포함되지 않은 문자 중 하나
^ 문자열의 시작 위치.
여러 줄에서 처리할 때는 각 줄의 시작을 의미
$ 문자열의 마지막 위치 or 개행문자의 바로 앞 위치
( ) 괄호 안의 일치되는 부분을 묶어서 사용
\1  1~9까지의 숫자 표현
\w 영어 소문자, 언더바, 영어 대문자, 숫자
a-z, A-Z, _, 0-9
* 바로 앞의 패턴이 0번 이상 일치
{1,2} 바로 앞의 패턴이 최소 1번 최대 2번 일치
? 바로 앞의 패턴이 0 또는 1번 일치
+ 바로 앞의 패턴이 1번 이상 일치
| 앞 패턴 또는 뒤에 패턴 중 하나와 일치 (OR)

 

예제 1. 사이트에서 이메일을 수집

import requests
import re

# 수집할 사이트
url=' '

headers = {
    'User-Agent': 'Mozilla/5.0',
    'Content-Type': 'text/html; charset=utf-8'
}

res=requests.get(url,headers=headers)

results=re.findall(r'[\w\.-]+@[\w\.-]+',res.text)
results=list(set(results))
print(results)

 

예제 2. 수집한 이메일을 엑셀파일로 저장

import requests
import re
from openpyxl import load_workbook
from openpyxl import Workbook

url=' '

headers = {
    'User-Agent': 'Mozilla/5.0',
    'Content-Type': 'text/html; charset=utf-8'
}

res=requests.get(url,headers=headers)

results=re.findall(r'[\w\.-]+@[\w\.-]+',res.text)
results=list(set(results))
print(results)

try:
    # email.xlsx 파일이 존재하여 로드할 수 있는경우, 파일을 읽는다.
    wb=load_workbook(r'email.xlsx',data_only=True)
    sheet=wb.active
except:
    # email.xlsx 파일이 없다면 새로운 엑셀 파일 생성
    wb=Workbook()
    sheet=wb.active

# 이메일을 수집한 만큼 반복
for result in results:
    sheet.append([result])

wb.save(r'email.xlsx')
저작자표시 (새창열림)

'프로그래밍 > python' 카테고리의 다른 글

pyqt5 통한 GUI 프로그램 만들기 메모(Qt Designer)  (0) 2022.11.13
[python] schedule 라이브러리, 주기/시간 설정 방법  (6) 2022.10.27
[python] pyautogui 라이브러리 기능들  (0) 2022.10.26
[python] qrcode 모듈 사용 중 "No module named 'Image'" 예외 발생  (0) 2022.10.11
[python] socket 모듈로 내부 IP 확인하기. socket(), getsockname(), gethostname(), 정규표현식  (1) 2022.10.11
'프로그래밍/python' 카테고리의 다른 글
  • pyqt5 통한 GUI 프로그램 만들기 메모(Qt Designer)
  • [python] schedule 라이브러리, 주기/시간 설정 방법
  • [python] pyautogui 라이브러리 기능들
  • [python] qrcode 모듈 사용 중 "No module named 'Image'" 예외 발생
병뚜
병뚜
열정!
  • 병뚜
    열려라 뚜껑
    병뚜
  • 전체
    오늘
    어제
    • all (372)
      • 일상X사랑X돈 (0)
        • 보안이슈 (114)
        • 뜨거운감자 (9)
        • 맛집 (2)
        • 혼잣말 (16)
      • 보안 (87)
        • 웹·모바일 (46)
        • 인프라 (19)
        • 리버싱 (8)
        • Security-Gym (10)
        • 리뷰 (4)
      • 프로그래밍 (66)
        • python (14)
        • java (12)
        • js (40)
      • System (47)
        • OS (14)
        • 침투 (33)
      • Play (20)
        • wargame (20)
      • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    랜섬웨어
    정보보호
    리버싱
    윈도우인터널스
    혼공단
    보안이슈
    jwt
    혼공파
    IT뉴스
    혼공
    파이썬입문
    정보보안교육
    kisa
    혼자공부하는파이썬
    windows internals
    파이썬공부
    자바스크립트 상속
    악성코드
    프로세스
    it이슈
    정보보안
    파이썬초보
    혼공학습단
    보안뉴스
    파이썬
    커널디버깅
    드림핵리버싱
    공급망공격
    리버싱초보
    뉴스요약
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
병뚜
[python] 정규표현식 라이브러리 re, 그 활용 예제
상단으로

티스토리툴바