파이썬 정규식 예제

Tempo de leitura: menos de 1 minuto

0 Flares Filament.io 0 Flares ×

문자열에 REs를 넣으면 Python 언어가 더 간단해지만 다음 섹션의 주제인 한 가지 단점이 있습니다. Perl 5는 표준 정규식에 몇 가지 추가 기능을 추가했으며 파이썬 재 모듈은 대부분의 기능을 지원합니다. Perl의 정규식을 표준 REs와 혼동없이 나타내기 위해 로 시작하는 새로운 단일 키 입력 메타 문자 또는 새로운 특수 시퀀스를 선택하는 것은 어려웠을 것입니다. 예를 들어 새 메타문자로 선택한 경우 이전 표현식은 일반 문자이며 &or [&]를 작성하여 이스케이프하지 않았을 것이라고 가정합니다. 예를 들어 줄의 시작 부분에서만 From라는 단어를 일치시려면 사용할 RE는 ^From입니다. findall()은 첫 번째 패턴뿐만 아니라 패턴의 모든 발생과 일치합니다()). 예를 들어 작성자가 일부 텍스트에서 모든 부사를 찾으려는 경우 다음과 같은 방식으로 findall()을 사용할 수 있습니다. 예를 들어 프랑스어 텍스트를 처리하는 경우 단어와 일치하도록 w+를 쓸 수 있지만 w는 문자 클래스 [A-Za-z]만 일치합니다. `é` 또는 `ç`와 일치하지 않습니다. 시스템이 제대로 구성되고 프랑스어 로캘이 선택된 경우 특정 C 함수는 프로그램에 `é`도 문자로 간주해야 한다고 알려줍니다. 정규식을 컴파일할 때 LOCALE 플래그를 설정하면 결과 컴파일된 개체가 w에 이러한 C 함수를 사용합니다. 이것은 느리지만 w +가 예상대로 프랑스어 단어와 일치할 수 있습니다.

때로는 re.match()를 계속 사용하고 RE의 전면에 .*를 추가하려는 유혹을 받을 수 있습니다. 이 유혹에 저항하고 대신 re.search()를 사용하십시오. 정규식 컴파일러는 일치를 찾는 프로세스를 가속화하기 위해 일부 REs 분석을 수행합니다. 이러한 분석 중 하나는 일치의 첫 번째 문자가 무엇인지 알아낸다. 예를 들어 까마귀로 시작하는 패턴은 `C`로 시작하여 일치해야 합니다. 분석을 통해 엔진은 시작 문자를 찾는 문자열을 빠르게 스캔할 수 있으며 `C`가 발견된 경우에만 전체 일치를 시도할 수 있습니다. 정규표현식은 백슬래시 문자(“)를 사용하여 특별한 형식을 나타내거나 특수 문자를 특별한 의미를 호출하지 않고 사용할 수 있도록 합니다. 이것은 문자열 리터럴에서 동일한 목적을 위해 동일한 문자를 파이썬의 사용과 충돌합니다. 예를 들어 리터럴 백슬래시와 일치하려면 정규식은 이어야 하고 각 백슬래시는 일반 파이썬 문자열 리터럴 내에서 로 표현되어야 하기 때문에 패턴 문자열로 `\`를 작성해야 할 수 있습니다.

Os comentários foram encerrados, mas trackbacks e pingbacks estão abertos.