로캘은 언어 차이를 고려하는 프로그램을 작성하는 데 도움이 되는 C 라이브러리의 기능입니다. 예를 들어 프랑스어 텍스트를 처리하는 경우 단어와 일치하도록 w+를 쓸 수 있지만 w는 문자 클래스 [A-Za-z]만 일치합니다. `é` 또는 `ç`와 일치하지 않습니다. 시스템이 제대로 구성되고 프랑스어 로캘이 선택된 경우 특정 C 함수는 프로그램에 `é`도 문자로 간주해야 한다고 알려줍니다. 정규식을 컴파일할 때 LOCALE 플래그를 설정하면 결과 컴파일된 개체가 w에 이러한 C 함수를 사용합니다. 이것은 느리지만 w +가 예상대로 프랑스어 단어와 일치할 수 있습니다. 정규식 패턴의 더 큰 목록은이 게시물의 끝에 온다. 그러나 이에 앞서 정규식을 컴파일하고 재생하는 방법을 살펴보겠습니다. 위의 코드에서 특수 문자 `d`는 모든 숫자와 일치하는 정규 식입니다. 이 자습서의 후반부에서 이러한 패턴을 더 많이 다룰 것입니다. 대부분의 정규식 작업은 컴파일된 정규식에서 모듈 수준 함수 및 메서드로 사용할 수 있습니다. 함수는 정규식 개체를 먼저 컴파일할 필요가 없지만 일부 미세 조정 매개 변수를 놓칠 필요가 없는 바로 가기입니다.
정규식 언어는 비교적 작고 제한되어 있으므로 가능한 모든 문자열 처리 작업을 정규식을 사용하여 수행할 수 있는 것은 아닙니다. 정규식으로 수행할 수 있는 작업도 있지만 표현식은 매우 복잡합니다. 이러한 경우 처리를 수행 하기 위해 Python 코드를 작성 하는 것이 좋습니다. 파이썬 코드는 정교한 정규식보다 느리지만 더 이해하기 어려울 것입니다. 때로는 다시 모듈을 사용하는 것은 실수입니다. 고정 된 문자열 또는 단일 문자 클래스를 일치 하 고 IGNORECASE 플래그와 같은 다시 기능을 사용 하지 않는 경우 정규식의 전체 전원이 필요 하지 않을 수 있습니다. 문자열에는 고정 된 문자열로 작업을 수행하기위한 몇 가지 방법이 있으며 구현은 크고 일반화 된 정규식 엔진 대신 목적을 위해 최적화 된 단일 작은 C 루프이기 때문에 일반적으로 훨씬 빠릅니다. 문자열 내의 패턴에 대한 정규식 검색의 기본 규칙은 다음과 같습니다(세트의 `a`, `i`, `L`, `m`, `s`, `s`, `u`, `x`, `-`와 `i`, `m`, `s`, `x`에서 하나 이상의 문자가 뒤따릅니다.) 해당 플래그를 설정하거나 제거하는 문자입니다. A (ASCII 전용 일치), re. 나는 (경우 무시), 다시.
L (로케일 종속), re. M (멀티 라인), re. S (점은 모두 일치), 다시. U(유니코드 일치) 및 re. X(자세한 내용)를 사용하며, 표현식의 일부에 대한 것입니다. 플래그는 모듈 내용에 설명되어 있습니다. 정규식의 힘은 고정된 문자뿐만 아니라 패턴을 지정할 수 있다는 것입니다. 다음은 단일 chars와 일치하는 가장 기본적인 패턴입니다: 위의 Python 정규식 메서드에서는 각 메서드가 선택적 플래그 인수를 사용하는 것을 알 수 있습니다.