>  기사  >  백엔드 개발  >  Python의 정규식 비탐욕 및 여러 줄 일치 기능에 대한 자세한 설명

Python의 정규식 비탐욕 및 여러 줄 일치 기능에 대한 자세한 설명

黄舟
黄舟원래의
2017-08-08 11:05:142033검색

이 글에서는 Python 정규식의 비 욕심 및 다중 줄 일치 기능을 주로 소개합니다. Python 정규식의 욕심 ​​없음 및 다중 줄 일치 기능의 구현 방법과 관련 주의 사항을 예제 형식으로 분석합니다. 필요한 경우 다음을 참조할 수 있습니다.

이 문서의 예에서는 Python 정규 표현식의 탐욕스럽지 않은 여러 줄 일치 기능을 설명합니다. 다음과 같이 참고할 수 있도록 모든 사람과 공유하세요.

일부 일반 팁:

1 탐욕스럽지 않은 플래그


>>> re.findall(r"a(\d+?)","a23b") # 非贪婪模式
    ['2']
>>> re.findall(r"a(\d+)","a23b")
    ['23']

이 상황을 주의 깊게 비교해 보세요.


>>> re.findall(r"a(\d+)b","a23b")
    ['23']
>>> re.findall(r"a(\d+?)b","a23b") #如果前后均有限定条件,则非匹配模式失效
    ['23']

2 원하는 경우 여러 줄을 일치시킨 다음 re.S 및 re.M 플래그를 추가합니다.

re.S: .는 기본적으로 줄바꿈과 일치합니다.


>>> re.findall(r"a(\d+)b.+a(\d+)b","a23b\na34b")
    []
>>> re.findall(r"a(\d+)b.+a(\d+)b","a23b\na34b",re.S)
    [('23','34')]
>>>

re.M: ^$ 플래그는 기본적으로 모든 줄과 일치합니다. 기본적으로 $는 일반 패턴을 따르는 첫 번째 줄에만 일치합니다.


>>> re.findall(r"^a(\d+)b","a23b\na34b")
    ['23']
>>> re.findall(r"^a(\d+)b","a23b\na34b",re.M)
    ['23','34']

^ 기호가 없으면


>>> re.findall(r"a(\d+)b","a23b\na34b")
    ['23','43']

가 표시되므로 다시 설정할 필요가 없습니다.

위 내용은 Python의 정규식 비탐욕 및 여러 줄 일치 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.