번역 - python 정규 표현 식 에서 search () 와 match () 의 차 이 는 무엇 입 니까?

2425 단어
― 저 는 기 존의 관련 문 서 를 읽 었 지만 기억 이 안 나 요. 비슷 한 문제 에 부 딪 혔 을 때 저 는 계속 찾 아서 공부 해 야 합 니 다. 저 는 어떤 큰 신 이 뚜렷 한 사례 를 해서 저 에 게 잘 기억 하거나 적어도 Stackoverflow 에서 제 가 다시 공부 할 때 편리 하 게 찾 을 수 있 는 곳 이 있 기 를 바 랍 니 다.
답: re. match 는 문자열 의 시작 에 있 습 니 다.그것 은 새 줄 과 무관 하기 때문에 패턴 상 ^ 의 용법 과 다르다.re. match 문서 에서 말 한 것 처럼:
문자열 의 시작 부분 에 0 개 이상 의 문자 가 정규 표현 식 모드 에 맞 으 면 일치 하 는 인 스 턴 스 대상 을 되 돌려 줍 니 다. 문자열 이 정규 표현 식 모드 에 맞지 않 으 면 None 로 돌아 갑 니 다. 0 길이 와 일치 하 는 것 은 차이 가 있 습 니 다.주: 문자열 에 일치 하 는 위 치 를 찾 으 려 면 search () 를 사용 하 십시오.
re. search 전체 문자열 을 검색 합 니 다. re. search 문서 에서 말 한 것 처럼:
전체 문자열 을 검색 합 니 다. 일치 하 는 정규 모드 가 생기 면 이 위 치 를 찾 아 일치 하 는 대상 을 되 돌려 줍 니 다.이 모드 와 일치 하 는 위치 가 없 으 면 None 으로 돌아 갑 니 다. (문자 의 어 딘 가 에 0 길이 의 일치 와 차이 가 있 음 을 주의 하 십시오.) 따라서 문자열 의 처음부터 일치 하거나 전체 문자열 과 일치 하려 면 match 를 사용 하 십시오.더 빠 릅 니 다. 그렇지 않 으 면 search 를 사용 하 십시오.
이 문 서 는 match 와 search 가 같은 여러 줄 의 문자열 을 덮어 쓰 는 전문 적 인 장 이 있 습 니 다.
Python 은 정규 표현 식 에 따라 두 가지 기본 동작 을 제공 합 니 다. match 는 문자열 의 시작 부분 에서 만 일치 하 는 지 확인 하고 search 는 문자열 의 모든 일치 하 는 위 치 를 확인 합 니 다 (Perl 기본 값 은 이렇게 설정 되 어 있 습 니 다).시작 하 는 정규 표현 식 을 사용 할 때 match 는 search 와 다 를 수 있 습 니 다. 문자열 의 시작 부분 만 일치 하거나 여러 줄 모드 에서 바로 따라 가 는 새 줄 입 니 다.어떤 모드 에서 든 match 작업 은 시작 문자열 이 일치 하 는 상황 에서 만 성공 하거나 선택 할 수 있 는 인자 pos 가 지정 한 시작 위치 (그 전에 새 줄 이 있 든 없 든) 입 니 다.
개념 을 충분히 말 했 으 니 다음 에 여러분 께 예 를 들 어 보 겠 습 니 다.
string_with_newlines = """something
someotherthing"""

import re

print re.match('some', string_with_newlines) # matches
print re.match('someother', string_with_newlines) # won't match 
print re.match('^someother', string_with_newlines, re.MULTILINE) # also won't match
print re.search('someother', string_with_newlines) # finds something
print re.search('^someother', string_with_newlines, re.MULTILINE) # also finds something

m = re.compile('thing$', re.MULTILINE)

print m.match(string_with_newlines) # no match
print m.match(string_with_newlines, pos=4) # matches
print m.search(string_with_newlines,re.MULTILINE) # also matches

번역자 주석:
  • re. match () 는 첫 번 째 문자 부터 찾 습 니 다. 첫 번 째 문자 가 일치 하지 않 으 면 None 으로 돌아 갑 니 다. 계속 일치 하지 않 습 니 다. 문자열 의 시작 이나 전체 문자열 이 일치 하 는 지 판단 하 는 데 사용 되 며 속도 가 빠 릅 니 다.
  • re. search () 는 일치 하 는 문자열 을 찾 을 때 까지 전체 문자열 을 찾 습 니 다.
  • re. MULTILINE 는 여러 줄 모드 와 일치 합 니 다.

  • 파 이 썬 의 re. search 와 re. match 의 차이 점 은 무엇 입 니까?

    좋은 웹페이지 즐겨찾기