지난번에 많은 친구들이 텍스트 차단에 대해 글을 쓰고 정규식 사용에 대해 언급했지만, 정규식을 사용하고 싶지 않다는 것은 아닙니다. 내용을 찾기 위해 BeautifulSoup의 웹 페이지 태그를 직접 사용합니다. 이해하기 쉽고 편리하기 때문입니다.) 그러나 규칙적인 규칙을 익히기는 어렵습니다. (일반 표를 읽어본 사람이라면 기호에 해당하는 방법 규칙이 많다는 것을 알 것입니다. 매우 유연합니다), 오랫동안 프로그래밍을 접하지 못한 친구들을 위해 프로그래밍 과정에서 많은 시간이 낭비될 가능성이 매우 높습니다. 오늘은 자주 사용하는 정규식을 간략하게 소개하겠습니다. 아주 특별한 것이 아니라면 기본적으로 사용됩니다.
1. 정규식에 대한 간략한 소개
먼저 일반 메서드를 가져와야 합니다. import re 정규식은 문자열을 처리하는 강력한 도구이며 자체적으로 독립적입니다. 처리 메커니즘은 str 자체 방법만큼 효율적이지는 않지만 기능은 매우 유연하고 강력합니다. 그 작동 과정은 먼저 일치 규칙("원하는 내용 + 일반 문법 규칙")을 정의하고 일치시킬 문자열을 넣은 다음 일반 규칙의 내부 메커니즘을 통해 원하는 정보를 검색하는 것입니다.
2. 자주 사용되는 findall의 여러 가지 자세
기본 구조는 대략 다음과 같습니다. nojoke = re.findall(r'matching rule','원하는 문자열 검색됨') nojoke는 정규 표현식을 통해 최종적으로 반환된 결과입니다. re 정규 findall은 정규 표현식이 뒤따르는 명령문을 나타내는 모든 r 플래그를 검색합니다(이렇게 하면 코드가 많을 때 쉽게 확인할 수 있습니다).
검색 문자열에서 bi 문자를 모두 찾아 리스트 형태로 반환하는 코드입니다. 통일된 문자가 등장합니다. 계속해서 다음
여기에 ^ 기호가 추가되어 abi로 시작하는 문자열과 일치하는 문자열이 반환되는지 여부도 확인할 수 있습니다. 아비와 함께.
여기서 $ 기호는 문자열이 끝나는지 여부를 확인하기 위해 gbi로 끝나는 문자열의 반환을 나타내는 데 사용됩니다.
여기서 [...]는 괄호 안의 a와 f, b와 f, c와 f의 값을 일치시켜 목록을 반환한다는 의미입니다.
"d"는 0에서 9 사이의 숫자를 일치시키고 목록을 반환하는 데 사용되는 일반 문법 규칙입니다. 11은 문자열 '1로 처리됩니다. ' 및 '1' 문자열 '11'을 반환하는 대신 반환합니다. 이를 잘못 사용하면 큰 함정이 발생할 수 있습니다.
물론, 위의 내용은 문자열에서 3자리를 얻는 방법을 보여줍니다. 이는 정규식의 유연성을 보여줍니다.
여기서 작은 d는 0~9의 숫자를 취한다는 뜻이고, 큰 D는 숫자가 없다는 뜻, 즉 숫자 이외의 내용이 반환된다는 뜻이다.
정규 표현식의 "w"는 위에 인쇄된 것처럼 소문자 a에서 z, 대문자 A에서 Z까지의 일치를 나타내며 숫자 0에서 9에는 처음 세 가지 유형이 포함됩니다. .
정규식에서 "W"는 문자와 숫자 이외의 특수 기호가 일치한다는 의미이지만 여기서 슬래시를 사용하는 경우 문자열은 이스케이프 기호라는 점에 유의해야 합니다. 자세한 내용은 Baidu 연구를 참조하세요.
여기서 대괄호()를 사용한다는 것은 대괄호 안의 내용을 취하는 매칭이라는 의미입니다. 여기서.*는 그림과 같이 그리디 혜택을 최대화하고 매칭 기준의 최대 범위를 최대화하는 것입니다. 위의 그림.
여기에 물음표가 추가됩니다.*? 일치하는 것을 최대 범위로 제한하는 것인데, 이를 비탐욕적 패턴 일치라고도 합니다. 결과는 두 p의 내용을 일치시키고 반환하는 것입니다.
여기서 re.I(대문자 i)를 추가하면 남자, 여자 상관없이 일치한다는 뜻이고, 그렇지 않은 경우 나중에 대소문자가 있으면 위의 일치가 나타납니다. 찾을 수 없음이 빈 목록을 반환합니다.
여기서 일어나는 일은 일반적으로 줄 바꿈 문자로 알려진 n입니다. 줄이 바뀌면 프로그램이 더 이상 인식하지 못하므로 re.S(대문자)를 추가했습니다. 기본적으로 위의 구문과 사용법을 배우면 일치하는 방법의 70% 이상을 얻을 수 있습니다. 물론 제가 하지 않는 방법도 많이 있습니다. 나머지는 스스로 배울 수 있습니다. 기본적으로 저는 거의 사용하지 않습니다.
2. 일치와 검색의 사용법 및 차이점:
re.match는 문자열의 시작 위치가 아닌 경우 패턴을 일치시키려고 합니다. 위치에 있으면 일치가 성공한 것입니다. 일치()는 아무 것도 반환하지 않습니다. re.search는 전체 문자열을 검색하고 첫 번째로 성공한 일치 항목을 반환합니다. 코드를 보면 이해하기 쉽습니다. 다음과 같습니다:
여기서 끝을 직접 인쇄하고 .span()을 추가하여 일치하는 문자열의 위치를 가져와 튜플(시작 위치, 끝 위치)로 반환합니다. ), null을 반환하고 컴파일러가 오류를 보고하기 때문에 Not Write가 하나 있습니다.
한눈에 알 수 있듯이 match는 시작 부분만 일치하고 찾을 수 없으면 None을 반환합니다. 반환 때문에 여기에 .group()을 추가하지 않았습니다. 값이 null입니다. 컴파일러는 오류를 보고하며, 검색은 까다롭지 않게 전체 문자열을 검색합니다. 물론 여기서는 위의 일반적인 방법을 사용하여 일치시킬 수도 있습니다. 연습하시면 됩니다.
3. sub 대체 사용법
sub는 문자열에서 일치하는 항목을 대체하는 데 사용됩니다. 구문은 일반적으로 re.sub(r'Regular match rule', '교체 문자열', 가져와야 할 문자열)
결과를 매우 직관적으로 반영합니다. # 기호와 다음 문자열을 변경하려는 문자열로 바꿉니다. .
4. 최종 혜택
최종 혜택을 드리기 전, 모두가 더 많은 실수와 정리를 통해 실천해보시길 바랍니다. , 마지막 혜택은 다음과 같이 일반적으로 사용되는 이메일 매칭 규칙을 알려드리는 것입니다. ->
위 내용은 Python 정규화 사용에 대한 그림 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!