2 Agosto 2019

파이썬 정규 표현식 예제

(세트에서 `a`, `i`, `L`, `m`, `m`, `s`, `s`, `x`, `-`다음에 `i`, `m`, `s`, `x`에서 하나 이상의 문자가 뒤따릅니다. 해당 플래그를 설정하거나 제거하는 문자입니다. A (ASCII 전용 일치), re. 나는 (경우 무시), 다시. L (로케일 종속), re. M (멀티 라인), re. S (점은 모두 일치), 다시. U(유니코드 일치) 및 re. X(자세한 내용)를 사용하며, 표현식의 일부에 대한 것입니다. 플래그는 모듈 내용에 설명되어 있습니다. 정규식 패턴은 일련의 바이트 코드로 컴파일된 다음 C로 작성된 일치하는 엔진에 의해 실행됩니다.

고급 사용을 위해 엔진이 지정된 RE를 실행하는 방법에 주의를 기울이고 더 빠르게 실행되는 바이트 코드를 생성하기 위해 특정 방식으로 RE를 작성해야 할 수 있습니다. 최적화는 일치하는 엔진의 내부를 잘 이해해야 하기 때문에 이 문서에서다루지 않습니다. 파이썬의 리 라이브러리는 마스터 할 가치가있는 기술을 만드는 몇 가지 기능을 제공합니다. re.search(), re.match()와 같은 일부 항목을 이미 보았습니다. 몇 가지 유용한 함수를 자세히 살펴보겠습니다: 이미 일치하는 경우 9번째 그룹화 된 하위 표현식을 일치시다. 그렇지 않으면 문자 코드의 팔각형 표현을 나타냅니다. `xyz alice-b@google.com 보라색 원숭이` 문자열 안에 이메일 주소를 찾으려고 한다고 가정합니다. 이 기능을 실행 중인 예제로 사용하여 보다 정규표현식 기능을 보여 드리겠습니다. 다음은 패턴 r`w+@w+`를 사용하는 시도입니다: 튜플 목록이 있으면 튜플을 반복하여 각 튜플에 대한 몇 가지 계산을 수행할 수 있습니다. 패턴에 괄호가 없는 경우 findall()은 이전 예제와 같이 찾은 문자열 목록을 반환합니다.

패턴에 단일 괄호 집합이 포함된 경우 findall()은 해당 단일 그룹에 해당하는 문자열 목록을 반환합니다. (모호한 선택적 기능: 경우에 따라 패턴에 paren () 그룹화가 있지만 추출하지 않으려는 경우가 있습니다. 이 경우 처음에는 “?: “로 파렌을 쓰고, 예를 들어(?: ) 및 왼쪽 파렌은 그룹 결과로 계산되지 않습니다.) 문자열 이나 내부 줄의 시작 부분에 “Python”을 일치시키는 것은 이제 정규식은 매우 컴팩트한 표기법의 것이지만 읽을 수는 없다는 것을 알게되었습니다. 중간 정도의 복잡성의 REs는 백슬래시, 괄호 및 메타 문자의 긴 컬렉션이 될 수 있으므로 읽고 이해하기가 어려울 수 있습니다. A | A와 B가 임의의 RE일 수 있는 B는 A 또는 B와 일치하는 정규식을 만듭니다. 임의의 수의 R은 이러한 방식으로 `|`로 구분할 수 있습니다. 이것은 그룹 내에서도 사용할 수 있습니다 (아래 참조). 대상 문자열을 검색할 때 `|`로 구분된 R은 왼쪽에서 오른쪽으로 시도됩니다. 하나의 패턴이 완전히 일치하면 해당 분기가 허용됩니다.

즉, A매치가 끝나면 B는 더 긴 전체 경기를 만들어내더라도 더 이상 테스트되지 않습니다. 즉, `|` 연산자는 결코 욕심이 없습니다. 리터럴 `|`와 일치하려면 |를 사용하거나 [|]에서와 같이 문자 클래스 안에 둘러싸입니다.

Contact us

Get in touch with us!