re.search 예제

그룹은 `(`) 메타문자`로 표시됩니다. `() 및 `)`는 수학 식에서와 거의 동일한 의미를 가짐을 가지고 있습니다. 그들은 그 안에 포함된 표현식을 함께 그룹화하고 *, +, ?, {m,n}과 같은 반복 한정자로 그룹의 내용을 반복할 수 있습니다. 예를 들어 (ab)*는 ab의 0 회 이상의 반복과 일치합니다. 대부분의 문자와 문자는 단순히 자신과 일치합니다. 예를 들어 정규식 테스트는 문자열 테스트와 정확히 일치합니다. (이 RE 일치 테스트 또는 테스트뿐만 아니라 수 있도록 대/소문자를 구분하지 않는 모드를 활성화할 수 있습니다.) 코드 일치 = re.search(pat, str)는 검색 결과를 “match”라는 변수에 저장합니다. 그런 다음 if-문이 일치를 테스트합니다 – true가 검색이 성공하고 match.group()이 일치하는 텍스트(예: `word:cat`)입니다. 그렇지 않으면 일치가 false이면(더 구체적으로 는 없음) 검색이 성공하지 못했고 일치하는 텍스트가 없습니다.

또 다른 반복 메타 문자는 +, 하나 이상의 시간 일치. * +와 +의 차이에주의하십시오. * 0 번 이상 일치하므로 반복되는 모든 것이 전혀 존재하지 않을 수 있지만 + 하나 이상의 발생이 필요합니다. 비슷한 예제를 사용하려면 ca+t가 고양이(1a), caaat(3 a`s)과 일치하지만 특수 문자는 세트 내에서 특별한 의미를 잃게 됩니다. 예를 들어 [(+*)]는 리터럴 문자 `(`(`,`+`, `*`, `*` 또는 `)`와 일치합니다. 집합을 보완하여 클래스에 나열되지 않은 문자를 일치시킬 수 있습니다. 이는 클래스의 첫 번째 문자로 `^`를 포함시켜 표시됩니다. 예를 들어 [^5]는 `5`를 제외한 모든 문자와 일치합니다. 캐릭터 클래스의 다른 곳에 카릿이 나타나면 특별한 의미가 없습니다. 예를 들어 [5^]는 `5` 또는 `^`와 일치합니다. 이 예제에서는 다음 도우미 함수를 사용하여 일치 개체를 좀 더 우아하게 표시합니다: 이메일 주소에서 remove_this를 제거하는 예제: 결과 RE가 이전 RE의 m에서 n 반복으로 일치하도록 하여 일치시키려고 시도합니다.

가능한 한 적은 반복. 이전 한정자의 욕심이 없는 버전입니다. 예를 들어 6자 문자열 `aaaaaa`에서{3,5}는 5개의 `a` 문자와 일치하지만{3,5}는 일치합니까? 3자만 일치합니다. 특수 시퀀스는 “와 아래 목록의 문자로 구성됩니다. 일반 문자가 ASCII 숫자 또는 ASCII 문자가 아닌 경우 결과 RE는 두 번째 문자와 일치합니다. 예를 들어 $는 문자 `$`와 일치합니다. re 함수는 패턴 일치의 동작을 수정하는 옵션을 선택합니다. 옵션 플래그는 search() 또는 findall() 등(예: re.search)(pat, str, re.)에 추가 인수로 추가됩니다. IGNORECASE).

유니코드 공백 문자([tnnfv]를 포함하며, 다른 많은 문자(예: 여러 언어의 타이포그래피 규칙에 의해 위임된 비중단 공백)와 일치합니다. ASCII 플래그를 사용하는 경우 [tnnfv]만 일치합니다. 지정된 ID 또는 이름이 있는 그룹이 있는 경우 예 패턴과 일치시키려고 시도하고 패턴이 없는 경우 패턴이 없는 경우 와 일치시키려고 시도합니다. 패턴 없음은 선택 사항이며 생략할 수 있습니다. 예를 들어(>=)는 “와 `[email protected]`와 일치하지만 “와는 일치하지 않는 잘못된 이메일 일치 패턴입니다. 다음은 sub() 메서드를 사용하는 간단한 예입니다. 색상 이름을 색상으로 바꿉니다: 가장 복잡한 반복된 한정자는 {m,n}이며 m과 n은 소수점 정수입니다. 이 한정자는 최소한 m 반복이 있어야 하며, 대부분의 n이 있어야 함을 의미합니다. 예를 들어 a/{1,3}b는 a/b, a//b 및 a//b와 일치합니다.

슬래시가 없는 ab 또는 4개가 있는 a////b와 일치하지 않습니다.