Python 정규 표현 식 비 탐욕,다 중 일치 기능 예제

이 글 의 사례 는 Python 정규 표현 식 이 탐욕 적 이지 않 고 여러 줄 의 일치 기능 을 다 루 었 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
일부 regular tips:
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
a34b") [] >>> re.findall(r"a(\d+)b.+a(\d+)b","a23b
a34b",re.S) [('23','34')] >>>
re.M:^$플래그 는 줄 마다 일치 합 니 다.기본^는 정규 에 맞 는 첫 줄 만 일치 합 니 다.기본$는 정규 에 맞 는 마지막 줄 만 일치 합 니 다.

>>> re.findall(r"^a(\d+)b","a23b
a34b") ['23'] >>> re.findall(r"^a(\d+)b","a23b
a34b",re.M) ['23','34']
하지만^로고 가 없다 면,

>>> re.findall(r"a(\d+)b","a23b
a34b") ['23','43']
이 를 통 해 알 수 있 듯 이 re.M 이 필요 없습니다.

import re
n='''12 drummers drumming,
11 pipers piping, 10 lords a-leaping'''
p=re.compile('^\d+')
p_multi=re.compile('^\d+',re.MULTILINE) #   MULTILINE   
print re.findall(p,n) #['12']
print re.findall(p_multi,n) # ['12', '11']


import re
a = 'a23b'
print re.findall('a(\d+?)',a) #['2']
print re.findall('a(\d+)',a) #['23']
print re.findall(r'a(\d+)b',a) #['23']
print re.findall(r'a(\d+?)b',a) # ['23']


b='a23b
a34b' ''' . ''' print re.findall(r'a(\d+)b.+a(\d+)b',b) #[] print re.findall(r'a(\d+)b',b,re.M) # ['23', '34'] print re.findall(r'^a(\d+)b',b,re.M) # ['23', '34'] print re.findall(r'a(\d+)b',b) #['23','34'] print re.findall(r'^a(\d+)b',b) # ['23'] ^ print re.findall(r'a(\d+)b$',b) # ['34'] $ print re.findall(r'a(\d+)b',b,re.M) #['23', '34'] print re.findall(r'a(\d+)b.?',b,re.M) # ['23', '34'] '.' ,'?' 0 1 print re.findall(r"a(\d+)b", "a23b
a34b") # ['23', '34']
주:Python 3.4 에서 print 는 함수 이 므 로 괄호 를 넣 어야 합 니 다.
PS:여기 서 여러분 께 매우 편리 한 정규 표현 식 도구 2 가 지 를 제공 합 니 다.참고 하 시기 바 랍 니 다.
JavaScript 정규 표현 식 온라인 테스트 도구:
http://tools.jb51.net/regex/javascript
정규 표현 식 온라인 생 성 도구:
http://tools.jb51.net/regex/create_reg
더 많은 파 이 썬 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기