>  기사  >  백엔드 개발  >  Python 정규 표현식으로 중첩 일치를 구현하는 방법

Python 정규 표현식으로 중첩 일치를 구현하는 방법

WBOY
WBOY앞으로
2022-07-25 17:20:443183검색

이 글은 Python에 대한 관련 지식을 제공합니다. Python 정규 표현식이 중첩 일치를 구현하는 방법을 주로 소개합니다. 좋은 참고 가치가 있으므로 모두에게 도움이 되기를 바랍니다.

Python 정규 표현식으로 중첩 일치를 구현하는 방법

【관련 추천: Python3 동영상 튜토리얼

겹침 일치를 구현하는 정규 표현식

import regex
string = '100101010001'
str_re = '101'
print(regex.findall(str_re, string, overlapped=True))

일반적인 re 라이브러리 일치는 '101' 하나만 일치할 수 있습니다.

정규식 및 정규 매칭

정규식

정규식은 제한된 수의 원자와 메타 문자로 구성된 데이터 필터링을 위한 표현으로 이해될 수 있습니다.

원자: 기본 단위, 각 표현에는 최소한 하나의 원자가 있습니다

S: s의 반대
#普通字符组成原子
pat1 = "abcd"
 
#非打印字符组成原子
pat2 = "\n"
 
#通用字符做原子
pat3 = "\w"
 
#原子表组成原子
pat4 = "py[abc]"
#可以匹配pya,pyb,pyc,但匹配pyab等原子表重复出现的情况失败
 
#原子表开头带 ^ 表示取反
pat5 = "py[^abc]"
#第三个位置匹配除了a,b,c外的任意一个字符
메타 문자: ^
일반 문자가 원자를 구성합니다.

인쇄되지 않는 문자가 원자를 구성합니다

(인쇄되지 않은 문자는 원자를 구성합니다) 출력 스테이션)

n 숫자

D: d의 반대

s: 공백, 줄 바꿈, 들여쓰기 등 모든 공백 문자와 일치

원자 테이블이 원자를 구성함

원자들의 그룹이 테이블을 구성합니다. []에 의해 선언

테이블에 있는 원자의 우선순위는 같지만 내용은 순서대로만 나타납니다.

원자 테이블이 ^로 시작하면 부정을 의미합니다

정규 표현식에 특별한 의미가 있습니다

.

문자는 모든 문자와 일치합니다. 단, 개행 문자

은 문자열의 시작 위치와 일치합니다.

$ 일치하는 집합이 여러 개인 경우 문자열의 끝 위치와 일치합니다. 일치 시 문자열의 마지막 일치 집합을 반환합니다. *은 이전 원자와 0, 1, n번 일치합니다. [탐욕 모드: 최대한 많이 일치] ?는 0, 1번 일치합니다. 이전 원자와 일치합니다. [게으른 모드: 정확히 일치] +는 이전 원자와 1, n번 일치합니다. { j }이전 원자가 j번 나타남 { j , } 선행 원자가 j번 이상 나타남 { j , k }이전 원자가 j번 이상 k번 나타남 times i | j는 i 또는 j와 일치합니다. i와 j가 동시에 나타나면 i( ) 그룹과 일치합니다. (에 설명된 대로 이 데이터 그룹의 조합을 제한합니다. ), 그리고 괄호 안의 설명과 일치하는 내용만 반환합니다. 패턴 수정자 re.I일치 시 대/소문자 무시
는 함수에 있습니다. 플래그 위치의 매개변수는 정규 표현식을 변경하지 않고 의미를 변경하고 일치하는 결과를 조정합니다. .

re.M다행 일치

re.L지역화 인식 일치re.U 기준 w에 영향을 미치는 유니콘 문자 일치 Wre.S 일치에는 개행 문자가 포함됩니다. 정규식은 문자열에 대해 퍼지 일치를 수행하는 것이며, 그 중 하나는 다음과 같이 적용됩니다. 정규경기. 정규 매칭은 Python 크롤러가 크롤링된 텍스트 정보에서 대상 정보를 추출하기 위해 사용하는 기술입니다.
정규식 일치
정규 일치에 일반적으로 사용되는 함수: (정규식 모듈 re 호출)
re.search(pat, str[, flag]): 문자열 str을 스캔하고 위치를 반환합니다. pat(첫 번째 성공적인 일치), 플래그는 정규 표현식의 일치 방법을 제어하는 ​​데 사용됩니다

import re
str = 'python'
pat = 'pytho[a-n]'
print(re.search(pat, str))
re.match(pat, str[, flag]): 시작 부분을 스캔합니다. string str Position, pat의 위치(첫 번째 성공적인 일치)를 반환, 플래그는 정규식의 일치 방법을 제어하는 ​​데 사용됩니다. [처음에 일치하지 않으면 종료되고 없음을 반환합니다.]
import re
str_1 = 'hello world'
str_2 = 'world hello'
pat = 'world'
print(re.match(pat, str_1))
print(re.match(pat, str_2))

re.complie(pat [, flag]): 정규식 pat를 컴파일하고 정규식 객체

findall(str[, pos[, endpos]])를 반환합니다. 모두 일치하고 문자열을 목록으로 반환 [처음뿐만 아니라] 일치하는 모든 하위 문자열에 대해 pos 및 endpos는 문자열re.complie(pat).findall(str)에서 시작 위치를 지정할 수 있습니다. >: 전역 일치 함수, pat와 일치하는 str의 모든 하위 문자열 일치, 목록 로드 및 결과 반환

    import re
    str = "hello world hello world hello world"
    pat = "hello"
    print(re.complie(pat).findall(str))
    print(re.complie(pat).findall(str, 5, 15))
  • re.search(pat, str[, flag]):扫描字符串str,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式
import re
str = "400-823-823"
pat = "-"
#短横改空格,最大替换次数2
str_new = re.sub(pat, " ", str, count=2)
  • re.match(pat, str[, flag]):扫描字符串str开始的位置,返回pat的位置(第一次成功匹配的),flag用于控制正则表达式的匹配方式【若开始就不符合则结束,返回none】
rrreee
  • re.complie(pat[, flag]):编译正则表达式pat,返回正则表达式对象
  • findall(str[, pos[, endpos]]):匹配所有,用列表返回string中所有匹配到的子串【不止第一次】,pos和endpos可指定在string中的起始位置
  • re.complie(pat).findall(str):全局匹配函数,匹配str中所有符合pat的子串,装入一个列表返回结果
rrreee
  • re.sub(pat, repl, str[, count[, flag]])re.sub(pat, repl, str[, count[, flag]]) code>: 문자 교체 문자열 [clean data]에서 일치, count를 사용하여 최대 교체 수를 지정할 수 있습니다
rrreee

[관련 권장 사항: Python3 비디오 튜토리얼]

위 내용은 Python 정규 표현식으로 중첩 일치를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제