>백엔드 개발 >파이썬 튜토리얼 >Python의 re 모듈 및 정규식 소개(코드 포함)

Python의 re 모듈 및 정규식 소개(코드 포함)

不言
不言앞으로
2019-02-20 14:27:322478검색

이 글은 Python의 re 모듈과 정규 표현식(코드 포함)에 대한 소개를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 친구에게 도움이 되기를 바랍니다.

정규 표현식(영어: 정규 표현식, 코드에서 종종 regex, regexp 또는 RE로 약칭됨)은 정규 표현식, 정규 표현식, 정규 표현식, 정규 표현식, 정규 표기법이라고도 알려져 있으며 컴퓨터 과학 개념의 용어입니다. 정규식은 단일 문자열을 사용하여 특정 구문 규칙과 일치하는 일련의 문자열을 설명하고 일치시킵니다. 많은 텍스트 편집기에서는 특정 패턴과 일치하는 텍스트를 검색하고 바꾸는 데 정규식을 사용하는 경우가 많습니다. RERGULAL 표현 규칙, 단일 문자 일치

character.
Function Rephere example 매치 일치 예
B .B .B .B .B .B .B. bab,b2b
[ ] 은 []에 설정된 문자 집합의 모든 문자와 일치합니다. i [abCde]m i ​​​​am
d 은 모든 10진수와 일치하며 [ 0 -9] 일관성 wdcschool w3cschool
D 은 숫자가 아닌 문자와 일치합니다. 즉, 숫자가 아닌 mouDh mouth
s 은 모든 공백 문자와 일치합니다. [ntrvf]와 동일 islike i like
S 는 공백이 아닌 모든 문자와 일치하지만 s nSe noe,n3e
w 은 모든 영숫자 문자와 일치합니다. Za-z0-9_ ]동일 [A-Za-z]w+
W 은 단어가 아닌 문자와 일치 [0-9]W[A-Z] 3 A

수량 일치를 의미합니다

문자를 일치시키기 전 1번 또는 0번 나타납니다. 한 번이든 아니든 a?{m}은 이전 문자와 m번 나타납니다. [0-9] {5}{m.}이전 문자가 m번 이상 나타나는 것과 일치합니다a{5.}{m, n} 이전 항목과 일치 m에서 n번까지 나타나는 문자 a{2,6}함수.*Bver
Character Function 정규 표현식 예시 일치 예시
* 이전 정규 표현식과 0회 이상 일치 , 선택사항 a* ㅋㅋㅋ
a 또는 b

12345

aaaaa

aaa
은 경계 일치를 나타냅니다.
문자
정규 표현식 예 Theb B 단어가 아닌 경계와 일치

그룹화 일치charactersfunction(ab)괄호 안의 문자를 그룹으로 처리합니다그룹 num(?P< 이름>) 별칭 그룹화
왼쪽이나 오른쪽의 어떤 표현과도 일치하세요
num

re 모듈파이썬에서는 내장된 re 모듈 정규식을 사용하려면re 모듈 공통 함수 및 메서드핵심 함수 설명compile(pattern, flags=0)
(?P=name) 별칭 이름 그룹과 일치하는 문자열 인용하기


옵션 플래그를 사용하여 정규식 패턴을 컴파일합니다. 그런 다음 정규식 개체를 반환합니다
re 모듈 함수 및 정규식 개체 메서드 설명
match(pattern,string,flags=0) 정규식 패턴을 선택적 플래그 문자열과 일치시키려고 시도합니다. 일치가 성공하면 일치 개체를 반환하고, 실패하면 None을 반환합니다.
search(pattern,string,flags=0) 선택적 마커를 사용하여 문자열에서 정규식 패턴이 처음 나타나는 것을 검색합니다. . 일치에 성공하면 일치하는 개체가 반환되고, 실패하면 None이 반환됩니다.
findall(pattern,string,[,flags]) 문자열에서 정규식의 모든 항목을 찾아 목록을 반환합니다.
split(pattern, string, max=0) split 함수는 정규식의 패턴 구분 기호에 따라 문자열을 목록으로 분할한 다음 성공적으로 일치하는 목록을 반환할 수 있습니다. 최대 횟수 수행(기본값은 성공적으로 일치하는 모든 항목을 분할하는 것임) 위치)
sub(pattern,repl,string,count=0) repl을 사용하여 문자열에서 정규식 패턴의 모든 항목을 바꾸십시오. 개수가 정의되면 모든 항목이 대체됩니다
일반적으로 사용되는 일치 개체 메서드 Explanation
group(num=0) Default는 전체 일치 개체를 반환하거나 특정 하위 그룹을 반환합니다. 번호가 매겨진 num
groups(기본값 =None) 일치하는 모든 하위 그룹을 포함하는 튜플을 반환합니다. 일치하는 항목이 없으면 빈 튜플을 반환합니다.
span()
정규식 개체(예: match())에서 제공하는 일련의 메서드를 통해 텍스트에 대해 일치하는 검색을 수행하고 일치하는 결과를 가져오는 Match 개체 ;
자주 사용하는 모듈 속성, 대형 정규 표현식 함수를 수정하는 데 주로 사용됩니다. Explanation
re.I 대소문자를 구분하지 않도록 설정합니다(대소문자 무시)
re.S .(점) n을 제외한 모든 문자와 일치합니다. re.S 표시는 유니코드 문자에 따라 ^ 및 $
re.U 에 영향을 미치는 모든 문자
re.M 와 일치할 수 있음을 나타냅니다. 구문 분석 문자를 설정합니다. w, W, b 및 B
re에 영향을 줍니다. 정규식의 문자열 형식을 정규식 개체로 컴파일하려면 compile() 함수를 사용하세요.
마지막으로 Match 개체를 사용합니다. 제공된 속성과 메서드(예: group())를 사용하여 정보를 얻고 다음과 같은 다른 작업을 수행합니다. 필요합니다.

re 모듈 사용 예
  1. 모듈 가져오기

    import re
    compile() 函数将正则表达式的字符串形式编译为一个正则表达式对象;
  2. 通过正则表达式对象提供的一系列方法(如:match())对文本进行匹配查找,获得匹配结果,一个Match对象;

  3. 最后使用Match对象提供的属性和方法(例如:group())获得信息,根据需要进行其他的操作。

re模块使用示例

导入模块

import re

# 将正则表达式编译成pattern对象
pattern = re.compile(r'\d+')

compile()函数
compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:

match(string[, pos[, endpos]])

编译成正则表达式对象后,就可以使用上面所说的正则表达式对象方法了。

match()方法
match 方法用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。它的一般使用形式如下:

>>> import re
>>> 
>>> pattern = re.compile(r'\d+') # 正则表达式表示匹配至少一个数字
>>> 
>>> m = pattern.match("one2three4") # match默认从开头开始匹配,开头是字母o,所以没有匹配成功
>>> print(m) # 匹配失败返回None
None
>>> 
>>> m = pattern.match("1two3four") # 开头字符是数字,匹配成功
>>> print(m)
<_sre.SRE_Match object; span=(0, 1), match=&#39;1&#39;>
>>> 
>>> m.group() # group()方法获取匹配成功的字符
'1'
>>> m = pattern.match("onetwo3four56",6,12) # 指定match从数字3开始查找,第一个是数字3,匹配成功
>>> print(m)
<_sre.SRE_Match object; span=(6, 7), match=&#39;3&#39;>
>>> m.group()
'3'

其中,string是待匹配的字符串,pos 和 endpos 是可选参数,指定字符串的起始终点位置,默认值分别是 0 和 lencompile()함수

compile 함수는 사용 정규식을 컴파일하면 패턴 개체가 생성됩니다. 일반적인 사용 형태는 다음과 같습니다.

rrreee

정규식 개체로 컴파일한 후 위에서 언급한 정규식 개체 방법을 사용할 수 있습니다.

match() 메서드🎜 match 메서드는 문자열의 선두를 찾는 데 사용되며(시작 위치도 지정할 수 있음) 한 번 일치, 일치하는 결과가 발견되면 일치하는 모든 결과를 검색하는 대신 반환됩니다. 일반적인 사용 형식은 다음과 같습니다. 🎜rrreee🎜여기서 string은 일치시킬 문자열이고 pos 및 endpos는 문자열의 <code>startend를 지정하는 선택적 매개변수입니다. 위치, 기본값은 각각 0과 len(문자열 길이)입니다. 따라서 pos 및 endpos를 지정하지 않으면 일치 방법은 기본적으로 문자열의 헤드를 일치시키는 것으로 설정됩니다. 🎜🎜일치에 성공하면 Match 개체가 반환됩니다. 일치하는 항목이 없으면 None이 반환됩니다. 🎜rreee🎜🎜

위 내용은 Python의 re 모듈 및 정규식 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

관련 기사

더보기