찾다
백엔드 개발파이썬 튜토리얼Python 정규식에 대한 참고 사항

Python 정규식에 대한 참고 사항

Feb 01, 2021 pm 05:58 PM
python정규식

Python 정규식에 대한 참고 사항

기사 디렉토리

  • 0, 서문
  • 1, 정규식 패턴
  • 2, 정규식 수정자 - 선택적 플래그
    • 2.1, `re.IGNORECASE`(`re.I`)
    • 2.2, `re.ASCII`(`re.A`)
    • 2.3, `re.DOTALL`(`re.S`)
    • 2.4, `re.MULTILINE`(`re.M` )
    • 2.5 ,`re.verbose` (re. 3.1.1
    • example 3.1.2 xexample 3.1.3
  • 3.2. 여러 매치를 찾는 기능
    • example 3.2.1
      • 3.3. 분할.
      • 예제 3.3.1
    • import re
      • 0. 서문
    • 이 노트는 초보자 튜토리얼과 Zhihu 튜토리얼을 기반으로 하며 내 자신의 학습 경험을 일부 포함합니다.
    • 1. 정규식 패턴
    강조된 부분은 제가 추가한 부분인데 실제 상황에 맞게 매칭이 가능하거든요

여기서는 좀 게을러서 직접 캡쳐한 사진입니다 초보자 튜토리얼 중.

2. 정규식 수정자 - 선택적 플래그

2.1. re.IGNORECASE(re.I)

Python 정규식에 대한 참고 사항섹션 1은 상수이지만 re.findall 함수는 이 섹션 전체에서 사용되는 함수이므로 먼저 간단히 언급해야 합니다.

re.findall(pattern, string, flag=0): 문자열의 아무 곳이나 검색하고 목록을 반환합니다. pattern은 일치시킬 문자(문자열), string은 검색 소스, flag는 수정자, 기본값은 0


re .I의 기능은 문자의 대소문자를 무시하는 것입니다. Python 정규식에 대한 참고 사항

text = "I'm Jasmine-Feng. My student number is No. 321432"pattern = r"Jasmine-FENG"print('Default: ', re.findall(pattern,text))print('Ignore upper/lower case: ', re.findall(pattern,text,flags=re.I))
N.B. 패턴에는

r 문자열

이 할당됩니다. 이 r 문자열의 기능은 이스케이프를 방지하는 것입니다. r은 그대로 유지한다는 뜻입니다. 이 블로그 게시물을 참조하세요. 일반적으로 이 r 문자열은 정규식을 사용할 때 사용됩니다.

Default:  []Ignore upper/lower case:  ['Jasmine-Feng']Process finished with exit code 0
기본적으로 대소문자를 구분하여 ENG를 찾을 수 없으며, 구분하지 않으면 eng을 찾을 수 있습니다.

2.2, re.ASCII(re.A)re.IGNORECASE(re.I)

虽然第1节是常量,但我们必须先简要提一下re.findall这个函数,因为它是贯穿这一节的函数。
re.findall(pattern, string, flag=0): 从字符串任意位置查找,返回一个列表。pattern是欲匹配的字符(串),string是查找源,flag是修饰符,默认是0

re.I的作用是忽略字符大小写

text = "我是Jasmine-Feng. 我的学号是No. 321432"pattern = r"\w+"print('Default: ', re.findall(pattern,text))print('ASCII: ', re.findall(pattern,text,flags=re.A))

N.B. pattern被赋了一个r字符串,这个r字符串的作用是避免转义,r是raw的缩写,也就是保持原样的意思。可看这篇博文。一般来说,使用正则表达式都会用到这个r字符串。

Default:  ['我是Jasmine', 'Feng', '我的学号是No', '321432']ASCII:  ['Jasmine', 'Feng', 'No', '321432']Process finished with exit code 0

在默认情况下,区分大小写,找不到ENG;若不区分,则可以找到eng。

2.2、re.ASCII(re.A)

re.A的作用是只匹配ASCII码支持的字符,那么具体指哪些字符呢?下图来自百度百科。
Python 정규식에 대한 참고 사항
汉字是不在这个里面的,所以如果修饰符是re.A的话就匹配不了汉字了哈~

text = "我\t是Jasmine-F\neng. 我%的◉学号是No. 321432"pattern = r'.*'print('Default: ', re.findall(pattern,text))print('DOTALL: ', re.findall(pattern,text,re.S))

w+的作用是匹配一个或多个字母数字下划线汉字

Default:  ['我\t是Jasmine-F', '', 'eng. 我%的◉学号是No. 321432', '']DOTALL:  ['我\t是Jasmine-F\neng. 我%的◉学号是No. 321432', '']Process finished with exit code 0

2.3、re.DOTALLre.S

在正则表达式模式中,.是用来Python 정규식에 대한 참고 사항

text = "我\t是Jasmine-F\neng. 我%的◉\n学号是No. 321432"pattern = r'.$'pattern2 = r'^.'print('Default, end: ', re.findall(pattern, text))print('MULTILINE, end: ', re.findall(pattern, text, re.M))print('Default, start: ', re.findall(pattern2, text))print('MULTILINE, start: ', re.findall(pattern2, text, re.M))

.*的作用是匹配长度至少为0的字符(串),emmm,好像是句废话?事实上,只要整段话不被换行符截断,就可以得到整个字符串(外加一个空字符串)。

Default, end:  ['2']MULTILINE, end:  ['F', '◉', '2']Default, start:  ['我']MULTILINE, start:  ['我', 'e', '学']Process finished with exit code 0

2.4、re.MULTILINE(re.M)

$匹配定位到字符串末尾,^定位到字符串开头,默认情况下,如果换行,是不能定位到新一行的行头/尾的,而用re.M修饰则可以,也就是多行模式。

text = '朋友们好啊!我是xxxxxx拳掌门人xxx~'pattern = r'''朋友们  # 主语
              好啊!  # 谓语
           '''print(re.findall(pattern, text,re.VERBOSE))
['朋友们好啊!']Process finished with exit code 0

2.5、re.VERBOSE(re.X)

verbose是“详实的、冗长的”意思,通过该修饰符可以在正则表达式中加入注释。注意,是往pattern里面加,不是往text加!我一开始以为是可以往text加注释,然后调试半天都得不到结果。。。

text = 'Hello everybody!\n我是xxxxxx拳掌门人xxx~'pattern = r'BODY.*$'print(re.findall(pattern, text, re.I))print(re.findall(pattern, text, re.M))print(re.findall(pattern, text, re.M | re.I))
[][]['body!']Process finished with exit code 0

2.6、修饰符的叠加

使用|可以叠加修饰。

rrreeerrreee

3、正则表达式函数

3.1、查找单个匹配项的函数

re.A는 ASCII 코드에서 지원하는 문자만 일치하므로 문자는 구체적으로 참조합니까? 아래 사진은 바이두백과사전에서 발췌한 것입니다. 한자는 포함되지 않습니다. 이므로 수식어가 re.A이면 한자와 일치할 수 없습니다~rrreeew+는 하나 이상의 영숫자 및 밑줄 친 한자와 일치하는 데 사용됩니다
函数 功能
search 从任意位置开始搜索
match 从开头搜索,不用完全匹配
fullmatch 여기에 이미지 설명 삽입
rrreee

🎜 2.3, re.DOTALL (re.S) 🎜🎜🎜정규 표현식 모드에서는 .여기에 이미지 설명 삽입🎜rrreee🎜.* 기능은 다음과 같습니다. 길이가 0 이상인 문자(문자열)를 일치시키세요. 음, 말도 안되는 것 같나요? 실제로 전체 단락이 개행 문자로 잘리지 않는 한 전체 문자열(및 빈 문자열)을 얻을 수 있습니다. 🎜rrreee🎜🎜2.4, re.MULTILINE(re.M)🎜🎜🎜$는 문자열의 끝인 와 일치합니다. ^ 문자열의 시작 위치를 찾습니다. 기본적으로 새 줄을 바꾸면 새 줄의 시작/끝을 찾을 수 없습니다. 그러나 re.M을 사용할 수 있습니다. 이를 수정하려면 여러 줄 모드입니다. 🎜rrreeerrreee🎜🎜2.5, re.VERBOSE(re. 텍스트가 아닌 패턴에 추가한다는 점에 유의하세요! 처음에는 text에 주석을 추가할 수 있을 거라 생각했는데, 오랫동안 디버깅을 했더니 아무런 결과도 나오지 않았습니다. . . 🎜rrreeerrree🎜🎜2.6. 수정자의 중첩🎜🎜🎜수정사항을 중첩하려면 |를 사용하세요. 🎜rrreeerrreee🎜🎜3. 정규 표현식 함수🎜🎜🎜🎜3.1. 단일 일치 항목을 찾는 함수🎜🎜

🎜검색🎜🎜어디에서나 검색🎜🎜🎜일치🎜🎜처음부터 검색 , 아니오 정확히 일치해야 합니다🎜🎜🎜fullmatch🎜🎜처음부터 검색하면 정확히 일치해야 합니다🎜🎜🎜🎜🎜사실 원래 제가 직접 예제를 작성했는데 브라우저가 잘못 닫았습니다. 나 , 그리고 저장하지 않았습니다 (멘탈이 즉시 폭발했습니다)
함수 함수 🎜

위 내용은 Python 정규식에 대한 참고 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Python vs. C : 응용 및 사용 사례가 비교되었습니다Python vs. C : 응용 및 사용 사례가 비교되었습니다Apr 12, 2025 am 12:01 AM

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간의 파이썬 계획 : 현실적인 접근2 시간의 파이썬 계획 : 현실적인 접근Apr 11, 2025 am 12:04 AM

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

파이썬 : 기본 응용 프로그램 탐색파이썬 : 기본 응용 프로그램 탐색Apr 10, 2025 am 09:41 AM

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 ​​같은 작업에 적합합니다.

2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?Apr 09, 2025 pm 04:33 PM

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Python 3.6에 피클 파일을로드 할 때 '__builtin__'모듈을 찾을 수없는 경우 어떻게해야합니까?Apr 02, 2025 am 07:12 AM

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?경치 좋은 스팟 코멘트 분석에서 Jieba Word 세분화의 정확성을 향상시키는 방법은 무엇입니까?Apr 02, 2025 am 07:09 AM

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.