정규식

2023. 4. 17. 13:41·python/python_selenium

 

import re

def print_match(m):
    if m:
        print(m.group())
    else:
        print("매칭되지 않음.")

# . : 하나의 문자를 의미함.
# (ca.e) : cake, care, case ...
# ^ : 문자열의 시작
# (^de) : desk, demention, dev ...
# $ : 문쟈열의 끝
# (se$) : case, rase, base ...

# p에 ca.e의 패턴을 입력함.
p = re.compile("ca.e")

# 텍스트의 문자열의 처음부터 p패턴과 일치하면 match객체를 m에 삽입.
# 일치하지 않으면 `None`이 삽입됨
m = p.match("good care")

# 매칭되지 않으면 m.group() 출력 시, 에러가 발생함.
print_match(m)

# 주어진 문자중에 일치하는 것이 있는지 확인
m = p.search("good care")
print_match(m)

m = p.search("careless")
# 일치하는 문자열을 반환함
print("m.group() : ",m.group())
# 입력받은 문자열을 반환함 (string은 함수가 아니라 변수)
print("m.string : ",m.string)
# 입력받은 문자열의 시작 index
print("m.start() : ",m.start())
# 입력받은 문자열의 끝 index
print("m.end() : ",m.end())
# 입력받은 문자열의 시작/끝 index
print("m.span() : ",m.span())

# findall : 일치하는 모든것을 리스트 형태로 반환
lst = p.findall("good care case")
print(lst)

# finditer
lst = p.finditer("good care case")
print(lst)

# 문자 클래스 : [ ] 사이의 문자들과 매치
# [a-zA-Z] : 알파벳 모두
# [0-9] : 숫자 = /d <-> [^0-9], /D
p = re.compile("[a-z]+")
m = p.search("test")
print(m)

# 반복 : * or + 바로 앞의 문자를 반복함
# ca*t : ct ~ caaaa ... at 까지 매치됨 (a 반복횟수 0회부터)
# ca+t : cat ~ caaa ... at 까지 매치됨 (a 반복횟수 1회부터)
# ca{n,m}t : c(a * n~m회)t 까지 매치됨
# 다만, {}안의 숫자가 한개일 때 정해진 횟수만큼만 반복되어야 함
# ca?t : a 가 있어도 되고 없어도 된다 (=ca{0,1}t)

1. 정규 표현식

  • . : 하나의 문자를 의미함. // (ca.e) : cake, care, case ...
  • ^ : 문자열의 시작 // (^de) : desk, demention, dev ...
  • $ : 문자열의 끝 (se$) // case, rase, base ...
  • 문자 클래스 : [ ] 사이의 문자들과 매치
    ㄴ [a-zA-Z] : 알파벳 모두
    ㄴ [0-9] : 숫자 = /d <-> [^0-9], /D
  • 반복 : * or + 바로 앞의 문자를 반복함
    ㄴ ca*t : ct ~ caaaa ... at 까지 매치됨 (a 반복횟수 0회부터)
    ㄴ ca+t : cat ~ caaa ... at 까지 매치됨 (a 반복횟수 1회부터)
    ㄴ ca{n,m}t : c(a * n~m회)t 까지 매치되며, {}안의 숫자가 한개일 때 해당 횟수만큼만 반복
    ㄴ ca?t : a 가 있어도 되고 없어도 된다 (=ca{0,1}t)

2. 문자열 검색

  • p = re.compile(정규표현식) : p에 정규표현식의 패턴을 입력함
  • m = p.match(텍스트) : 텍스트 문자열 처음부터 패턴과 일치하면 match객체를 m에 삽입.
    ㄴ 일치하지 않으면 None이 삽입됨
  • m = p.search(텍스트) : 주어진 문자중에 일치하는 것이 있는지 확인 후 문자열 반환
  • lst = p.findall(텍스트) : 텍스트 내 패턴과 일치하는 모든 문자열을 리스트 형태로 반환
  • lst = p.finditer(텍스트) : 텍스트 내 패턴과 일치하는 모든 문자열을 match객체로 반환

'python > python_selenium' 카테고리의 다른 글

BeautifulSoup4 활용2  (0) 2023.04.22
BeautifulSoup4 활용1  (0) 2023.04.19
BeautifulSoup4 기본  (0) 2023.04.18
user agent  (0) 2023.04.17
웹스크래핑에 필요한 이론  (0) 2023.04.16
'python/python_selenium' 카테고리의 다른 글
  • BeautifulSoup4 활용1
  • BeautifulSoup4 기본
  • user agent
  • 웹스크래핑에 필요한 이론
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (176) N
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (32)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
        • 제4회 QA conference (2)
      • 에러일기 (1)
      • Server&load (35)
        • AWS (27)
        • load test (5)
        • CI CD (3)
        • Jmeter (0)
      • RAG 을 활용하여 LLM 만들어보기 (1) N
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    앱공존성
    qa
    사드웨어리소스
    테스트 결과보고서
    공존성테스트
    애플리케이션로그
    스터디
    qa 컨퍼런스
    리눅스
    postman
    cka
    테스트스크립트
    로스트아크
    네트워크 테스트
    e2c
    .cpu
    python
    qa conference
    linux
    k8s
    LOSTARK
    개발자에서아키텍트로
    포스트맨
    QAKOREA
    쿠버네티스
    로스트아크api
    도커
    API
    application log
    vi에디터
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
정규식
상단으로

티스토리툴바