>  기사  >  백엔드 개발  >  Python 정규식 지식 포인트 요약 및 구성

Python 정규식 지식 포인트 요약 및 구성

WBOY
WBOY앞으로
2022-04-13 19:09:141971검색

이 글에서는 주로 정규 표현식과 관련된 문제를 소개하는 python에 대한 관련 지식을 제공합니다. 정규 표현식(Regular Expression)은 정규적인 정보를 나타낼 수 있는 문자열입니다. 모든 사람에게 도움이 되기를 바랍니다.

Python 정규식 지식 포인트 요약 및 구성

추천 학습: python 비디오 튜토리얼

1.1 정규 표현식

정규 표현식(정규 표현식)은 문자열이며, 정규적인 정보를 나타낼 수 있습니다. Python에는 정규식 정보를 찾고, 추출하고, 바꿀 수 있는 정규식 모듈이 함께 제공됩니다. 만 명 중에서 한 사람을 찾기는 어렵지만, 만 명 중에서 아주 '특징'이 있는 사람 한 명을 찾는 것은 쉽습니다. 가령 녹색 피부에 키가 3미터나 되는 사람이 만명 중에 있어도 다른 사람들이 한 눈에 알아볼 수 있는 사람이 있다고 가정해 보십시오. 이 "검색" 프로세스를 정규식에서는 "일치"라고 합니다. 프로그램 개발에서 컴퓨터 프로그램이 큰 텍스트에서 필요한 내용을 찾도록 하려면 정규식을 사용할 수 있습니다. 정규식을 사용하려면 다음 단계를 따르세요.
(1) 패턴을 찾아보세요.
(2) 규칙을 표현하려면 일반 기호를 사용하세요.
(3) 정보를 추출합니다.

1.2 정규 ​​표현식의 기본 기호

1.2.1 점 " . "

은 개행 문자를 제외한 모든 문자 를 대체할 수 있습니다. 여기에는 영어 문자, 숫자, 중국어를 포함하되 이에 국한되지 않습니다. 문자, 영어 구두점 및 중국어 구두점.

1.2.2 별표 " * "

별표 는 앞에 있는 하위 표현식 ( 일반 문자 , 또 다른 또는 여러 정규식 기호)을 0회에서 무한대까지 나타낼 수 있습니다.

Python 정규식 지식 포인트 요약 및 구성
위의 모든 항목이 허용됩니다. (별표는 이전 표현식을 나타냅니다.)
Python 정규식 지식 포인트 요약 및 구성

1.2.3 점 + 별표 ".*"

점은 줄 바꿈이 아닌 문자를 나타내고 별표는 일치함을 나타냅니다. 그 앞의 문자가 0번 또는 여러 번 나타납니다. 따라서 ".*"는 임의의 길이의 문자열을 여러 번 일치시키는 것을 의미합니다.
Python 정규식 지식 포인트 요약 및 구성
위의 사항은 모두 허용됩니다.
이는 "such"와 "ha" 사이에 "줄 바꿈을 제외한 모든 문자"가 나타난다는 의미입니다.
Python 정규식 지식 포인트 요약 및 구성

1.2.4 물음표 “?”

물음표는 0번 또는 1번 앞의 하위 표현식을 나타냅니다. 여기서 물음표는 영어 물음표입니다. Python 정규식 지식 포인트 요약 및 구성
위 항목 모두 사용할 수 있습니다. Python 정규식 지식 포인트 요약 및 구성

1.2.5 점 + 별표 + 물음표 ".*?"(가장 일반적으로 사용됨)

조합 후 사용법:
Python 정규식 지식 포인트 요약 및 구성
위의 모든 항목을 사용할 수 있습니다.
Python 정규식 지식 포인트 요약 및 구성
참고: ".*?"와 ".*"의 차이점
. *? 요구 사항을 충족할 수 있는 가장 짧은 문자열을 일치시키겠다는 의미입니다.
한 문장으로 요약하면 다음과 같습니다.
① ".*": Greedy 모드, 조건에 맞는 가장 긴 문자열을 얻습니다.
②".*?": 비 욕심 모드, 조건을 충족하는 가장 짧은 문자열을 얻습니다.

1.2.6 괄호 "()"

문자열에서 내용의 일부를 "추출"합니다.
다음 문자열이 있습니다.
Python 정규식 지식 포인트 요약 및 구성
비밀번호 왼쪽에 영어 콜론이 있는 것을 볼 수 있습니다. 여기, 오른쪽에 영어 콜론이 있습니다. "you"를 뜻하는 한자가 있습니다. 정규식을 구성하는 경우: .*? 결과는 다음과 같습니다.
Python 정규식 지식 포인트 요약 및 구성
그러나 콜론과 한자 "you"는 비밀번호의 일부가 아닙니다. "12345abcde"만 원하는 경우 대괄호를 사용하여
Python 정규식 지식 포인트 요약 및 구성
을 얻어야 합니다.
Python 정규식 지식 포인트 요약 및 구성

1.2.7 백슬래시 “ ”

정규식에서는 물음표, 별표, 중괄호, 대괄호, 괄호 등 많은 기호가 특별한 의미를 갖습니다. 특수 기호를 일반 기호로, 일반 기호를 특수 기호로 바꾸려면 백슬래시를 다른 문자와 함께 사용해야 합니다.
Python 정규식 지식 포인트 요약 및 구성

1.2.8 숫자 "d"

"d"는 정규식에서 한 자리 숫자를 나타내는 데 사용됩니다.
두 개의 숫자를 추출하려면 dd를 사용하고, 3개의 숫자를 추출하려면 ddd를 사용하면 됩니다. 하지만 이 숫자가 몇 자리인지 모른다면 어떻게 될까요? 임의의 숫자를 나타내려면 * 기호를 사용해야 합니다.

Python 정규식 지식 포인트 요약 및 구성
모두 다음 정규식으로 표현할 수 있습니다.
Python 정규식 지식 포인트 요약 및 구성

1.3 정규식 사용하기

Python의 정규식 모듈 이름은 "re"이며, 이는 "정규식" 약어의 첫 글자입니다. Python에서는 이 모듈을 사용하기 전에 먼저 가져와야 합니다. 가져온 문은 다음과 같습니다.

import re

1.3.1 findall 메서드

Python의 정규식 모듈에는 list 형식으로 요구 사항을 충족하는 모든 문자열을 반환할 수 있는 findall 메서드가 포함되어 있습니다.
findall의 함수 프로토타입은 다음과 같습니다.

re.findall(pattern,string,flags=0)

pattern은 정규식을 나타내고, string은 원래 문자열을 나타내고, flags는 일부 특수 함수 플래그를 나타냅니다. findall의 결과는 일치하는 모든 결과를 포함하는 목록입니다. 일치하는 결과가 없으면 빈 목록이 반환됩니다.

특정 내용을 추출해야 할 경우 관련 없는 정보가 나오지 않도록 괄호를 사용하여 내용을 묶어주세요. "(.*? )"가 여러 개 포함된 경우 어떻게 반환하나요? 그림 3-2에서 볼 수 있듯이 반환되는 것은 여전히 ​​목록이지만 목록의 요소는 튜플이 됩니다. 튜플의 첫 번째 요소는 계좌 번호이고 두 번째 요소는 비밀번호입니다.
Python 정규식 지식 포인트 요약 및 구성

함수 프로토타입에 플래그 매개변수가 있습니다. 이 매개변수는 생략될 수 있습니다. 생략하지 않으면 대소문자 무시, 개행 무시 등과 같은 일부 보조 기능이 있습니다.
여기서는 설명을 위해 줄바꿈 무시를 예로 들었습니다. 줄바꿈을 무시하려면 "re.S" 플래그를 사용해야 합니다. Python 정규식 지식 포인트 요약 및 구성
일치 결과에 "n" 기호가 표시되지만 아무것도 얻지 못하는 것보다는 낫습니다. 나중에 데이터를 정리할 때 내용의 줄 바꿈을 바꿀 수 있습니다.

1.3.2 검색 방법

search()의 사용법은 findall()과 동일하지만 search()는 요구 사항을 충족하는 첫 번째 문자열만 반환합니다. 요구 사항과 일치하는 항목을 찾으면 검색을 중지합니다. 이는 초대형 텍스트에서 첫 번째 데이터만 찾는 데 특히 유용하며, 이는 프로그램의 실행 효율성을 크게 향상시킬 수 있습니다.

search()의 함수 프로토타입은 다음과 같습니다. Python 정규식 지식 포인트 요약 및 구성
결과적으로 일치에 성공하면 정규식 개체이고, 일치하는 데이터가 없으면 None입니다.

일치하는 결과를 얻으려면 .group() 메서드를 사용하여 내부 값을 가져와야 합니다.
Python 정규식 지식 포인트 요약 및 구성
.group()의 매개변수가 1인 경우에만 정규식에서 괄호 안의 결과가 인쇄됩니다.

.group()의 매개변수는 정규 표현식의 최대 괄호 수를 초과할 수 없습니다. 매개변수 1은 첫 번째 대괄호의 내용을 읽는 것을 의미하고, 매개변수 2는 두 번째 대괄호의 내용을 읽는다는 의미입니다.
(참고로 사진에 있는 것은 findall이 아닙니다.)
Python 정규식 지식 포인트 요약 및 구성

1.3.3 컴파일 방법

re.findall()에는 re.compile() 함수가 포함되어 있으므로 re.compile(을 사용할 필요가 없습니다. ).

1.4 정규식 추출 기술

1.4.1 큰 것을 먼저 파악한 다음 작은 것을 파악합니다: 2차 추출

Python 정규식 지식 포인트 요약 및 구성

1.4.2 괄호 안과 괄호 밖에 다른 문자가 있을 수 있습니다

있습니다 대괄호 안의 다른 문자가 될 수 있습니다.
구체적인 영향은 아래 그림을 참조하세요.
Python 정규식 지식 포인트 요약 및 구성
괄호 안에 다른 일반 문자가 있으면 이러한 일반 문자가 얻은 결과에 나타납니다.

추천 학습: python 비디오 튜토리얼

위 내용은 Python 정규식 지식 포인트 요약 및 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제