Python 정규식 및 re 라이브러리 소개(코드 예제)

不言
풀어 주다: 2019-02-11 10:33:55
앞으로
2071명이 탐색했습니다.

이 기사는 Python 정규식과 re 라이브러리에 대한 소개(코드 예제)를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

정규식은 검색 패턴을 정의하는 문자 시퀀스입니다. 일반적으로 이 패턴은 문자열에 대한 "찾기" 또는 "찾기 및 바꾸기" 작업이나 입력 유효성 검사를 위한 문자열 검색 알고리즘에서 사용됩니다.

1. 정규 표현식의 구문

  • . 단일 문자

  • [] 문자 집합을 나타내며, 단일 문자

  • [^] 비문자 집합에 대한 값을 제공합니다. 단일 문자의 문자는 제외 범위를 부여합니다

  • *이전 문자는 0배 또는 무한히 확장됩니다

  • +이전 문자는 1배 또는 무한히 확장됩니다

  • ?이전 문자는 0배 또는 1배 확장됩니다 time

  • |왼쪽 및 오른쪽 표현식 중 하나

  • {m}는 이전 문자를 m번 확장합니다.

  • {m,n}은 이전 문자를 m에서 n번으로 확장합니다.

  • ^과 일치합니다. 문자열의 시작

  • $는 문자열

  • () 그룹화 표시의 끝과 일치합니다. 내부적으로 | 연산자만 사용할 수 있습니다.

  • d 숫자, [0-9]

  • w 단어 문자, [A-Z, a-z,0-9]

2. Python에서 re 라이브러리 사용

Re 라이브러리는 주로 문자열 일치, 호출 방법에 사용되는 Python의 표준 라이브러리입니다. import re

2.1 정규식 문자 문자열 유형

re 라이브러리는 원시 문자열 유형을 사용하여 정규식을 표현하며, 이는
r'text'
로 표현됩니다. 원시 문자열은 다시 이스케이프 문자를 포함하지 않는 문자열입니다. 간단히 말해서 문자열은 문자를 이스케이프하지만 원시 문자열은 정규 표현식에 나타나기 때문에 지루함을 피하기 위해 원시 문자열

2.2을 사용합니다. Re 라이브러리

  • re. search()는 문자열에서 정규식의 첫 번째 위치를 검색하고 일치 개체를 반환합니다

  • re.match() 문자열의 시작 부분부터 정규식을 일치시키고 일치 개체를 반환합니다

  • re .findall()문자열을 검색하고 일치하는 모든 하위 문자열을 목록 유형으로 반환

  • re.split()정규식 일치 결과에 따라 문자열을 분할하고 목록 유형을 반환

  • re.finditer()문자열을 검색하고 일치하는 결과의 반복 유형을 반환합니다. 각 반복 요소는 일치 개체입니다

  • re.sub()문자열에서 정규식과 일치하는 모든 하위 항목을 바꿉니다. 대체된 문자열을 반환합니다

2.2.1. re.search(pattern, string, flags=0)

문자열에서 정규 표현식의 첫 번째 위치를 검색하고 일치 개체를 반환합니다

  • pattern: 문자열 또는 정규식의 기본 문자열 표현

  • string: 일치시킬 문자열

  • flags: 정규식을 사용할 때의 제어 플래그

  • re.IGNORECASE 무시 정규식의 대소문자 , [A‐Z]는 소문자와 일치할 수 있습니다.

  • re.M re.MULTILINE 정규 표현식의 ^ 연산자는 주어진 문자열의 각 줄을 일치 항목으로 시작할 수 있습니다.

  • re.S re.DOTALL . 정규식은 모든 문자와 일치할 수 있으며 기본적으로 개행 문자를 제외한 모든 문자와 일치합니다.

    매개변수는 검색 함수와 동일합니다
  • 예:
import re
match = re.search(r'[1-9]\d{5}', 'BIT 100081')
if match:
    print(match.group(0))

结果为100081
로그인 후 복사

2.2.3.re.findall(pattern, string, flags=0)

문자열을 검색하고 일치하는 모든 항목을 반환합니다. 목록 유형의 하위 문자열

매개변수는 검색과 동일

예:

import re
match = re.match(r'[1-9]\d{5}', 'BIT 100081')
print(match.group(0))

结果会报错,match为空,因为match函数是
从字符串开始位置开始匹配,因为从开始位置没有匹配到,所以为空
로그인 후 복사

2.2.4.re.split(pattern, string, maxsplit=0, flags=0)

Change a 문자열은 일반 규칙에 따라 분할됩니다. 표현식 일치 결과 및 반환되는 목록 유형은 maxsplit: 최대 분할 수이며 나머지 부분은 마지막 요소로 출력됩니다. maxsplit=0, flags=0)

문자열을 검색하여 일치하는 반복 유형을 반환합니다. 결과. 각 반복 요소는 일치 개체입니다.
매개 변수는 search
예:

import re
ls=re.findall(r'[1-9]\d{5}', 'BIT100081 TSU100084')
print(ls)

结果为['100081', '100084']
로그인 후 복사

2.2.6과 동일합니다. re.sub(pattern, repl, string, count=0, flags=0)

모든 하위 문자열 바꾸기 문자열에서 정규식을 일치시키고 대체된 문자열을 반환

  • repl: 문자열과 일치하는 문자열을 대체

count: 일치하는 대체의 최대 수

예:

import re
re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084')
结果['BIT', ' TSU', ' ']
re.split(r'[1-9]\d{5}', 'BIT100081 TSU100084', maxsplit=1)
结果['BIT', ' TSU100081']
로그인 후 복사

2.3 또 다른 동등한 사용법 Re 라이브러리(객체 지향)
import re
for m in re.finditer(r'[1-9]\d{5}', 'BIT100081 TSU100084'):
    if m:
        print(m.group(0))
结果为
100081
100084
로그인 후 복사
import re
re.sub(r'[1-9]\d{5}', ':zipcode', 'BIT100081 TSU100084')
结果为
'BIT:zipcode TSU:zipcode'
로그인 후 복사

regex=re.complie(pattern, flags=0)

Regex에는 위의 6가지 용도도 있습니다

2.4 Re 라이브러리의 일치 객체
  • Match 객체는 일치의 결과이며 일치하는 정보가 많이 포함되어 있습니다

  • 다음은 일치 개체의 속성입니다

.string 일치할 텍스트


.re 일치할 때 사용되는 패턴 개체(정규 표현식)

  • .pos 정규식 검색 텍스트의 시작 위치

  • .endpos 정규식 검색 텍스트의 끝 위치 #🎜 🎜#

  • 다음은 Match 개체의 메서드입니다

    # 🎜🎜##🎜 🎜#.group(0) 일치하는 문자열 가져오기
    • .start() 원래 문자열의 시작 부분에서 문자열 일치
    • #🎜🎜 #
    • .end()는 원래 문자열의 끝에 있는 문자열과 일치합니다.

    • .span()은 (.start를 반환합니다. (), .end())

    • 2.5 Re 라이브러리의 그리디 매칭 및 최소 매칭

    • 정규식이 다음과 같은 여러 항목과 일치할 수 있는 경우 길이가 다른 경우 어떤 것을 반환해야 합니까? Re 라이브러리는 기본적으로 탐욕스러운 일치를 사용합니다. 즉, 가장 긴 일치 하위 문자열

    최소 일치

    #🎜🎜을 반환합니다. ## 🎜🎜#*? 이전 문자가 0번 또는 무한히 확장됩니다. 최소 일치

      +? 무한히, 최소 일치
    • ?? 이전 문자가 0 또는 1번 확장되고, 최소 일치는
    • #입니다. 🎜🎜#{m, n}? 이전 문자 m을 n번(n 포함)으로 확장합니다. 최소 일치 항목은
    • 입니다. 길이 출력이 다를 수 있으므로 기호 뒤에 ? 연산을 사용하면 최소 일치가 됩니다.

    위 내용은 Python 정규식 및 re 라이브러리 소개(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:segmentfault.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿