구문 |
설명 |
. |
은 개행 문자를 제외한 모든 문자와 일치합니다. |
^ |
헤더는 |
$ |
꼬리 일치 |
* |
이전 문자와 0번 이상 일치 |
+ | 일치 이전 문자가 1번 이상 |
? |
이전 문자가 0번 이상 |
{m,n} |
이전 문자 m에서 n번까지 일치 |
|
특수 문자 |
[] | 은 | |
과 결합된 문자 집합 | 을 나타내는 데 사용됩니다. 또는 다음을 의미합니다. 왼쪽과 오른쪽 |
중 하나와 일치하는 항목3. 모듈 메소드
re.match(pattern, string, flags=0)
문자열의 처음부터 일치하며, 패턴이 일치하면 Match 객체 인스턴스를 반환합니다(Match 나중에 설명하는 객체), 그렇지 않으면 None이 반환됩니다. 플래그는 정규식의 일치 방법을 제어하는 데 사용되는 일치 모드(아래 설명)입니다.
import re
a = 'abcdefg'print re.match(r'abc', a) # 匹配成功print re.match(r'abc', a).group()print re.match(r'cde', a) # 匹配失败>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>abc
>>>None
로그인 후 복사
search(pattern, string, flags=0)
성공적으로 일치할 수 있는 문자열에서 하위 문자열을 찾는 데 사용됩니다. 발견되면 Match 객체 인스턴스가 반환되고, 그렇지 않으면 None이 반환됩니다. .
import re
a = 'abcdefg'print re.search(r'bc', a)print re.search(r'bc', a).group()print re.search(r'123', a)
>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>bc
>>>None
로그인 후 복사
sub(pattern, repl, string, count=0, flags=0)
바꾸기, 패턴과 일치하는 문자열 부분을 최대 횟수만큼 repl로 바꿉니다(나머지 일치 항목은 처리됨), 대체된 문자열이 반환됩니다.
import re
a = 'a1b2c3'print re.sub(r'\d+', '0', a) # 将数字替换成'0'print re.sub(r'\s+', '0', a) # 将空白字符替换成'0'>>>a0b0c0
>>>a1b2c3
로그인 후 복사
subn(pattern, repl, string, count=0, flags=0)
새 문자열이 포함된 튜플을 반환한다는 점을 제외하면 sub() 함수와 동일합니다. 및 일치 수
import re
a = 'a1b2c3'print re.subn(r'\d+', '0', a) # 将数字替换成'0'>>>('a0b0c0', 3)
로그인 후 복사
split(pattern, string, maxsplit=0, flags=0)
분할()의 일반 버전, 패턴이 일치하는 경우 하위 문자열 일치 패턴으로 문자열을 분할합니다. 괄호가 사용되면 패턴과 일치하는 문자열도 반환 값 목록의 일부로 사용되며 maxsplit은 최대로 분할할 수 있는 문자열입니다.
import re
a = 'a1b1c'print re.split(r'\d', a)print re.split(r'(\d)', a)
>>>['a', 'b', 'c']
>>>['a', '1', 'b', '1', 'c']
로그인 후 복사
findall(pattern, string, flags=0)
string의 패턴과 일치하는 겹치지 않는 하위 문자열을 목록 형식으로 반환합니다.
import re
a = 'a1b2c3d4'print re.findall('\d', a)
>>>['1', '2', '3', '4']
로그인 후 복사
4. 일치 개체
re.match()와 re.search()가 성공적으로 일치하면 일치 항목에 대한 많은 정보가 포함된 Match 개체를 반환합니다. 일치 제공 속성이나 메서드를 사용하여 이 정보를 얻을 수 있습니다. 예:
>>>import re
>>>str = 'he has 2 books and 1 pen'
>>>ob = re.search('(\d+)', str)
>>>print ob.string # 匹配时使用的文本
he has 2 books and 1 pen
>>>print ob.re # 匹配时使用的Pattern对象
re.compile(r'(\d+)')
>>>print ob.group() # 获得一个或多个分组截获的字符串
2
>>>print ob.groups() # 以元组形式返回全部分组截获的字符串
('2',)
로그인 후 복사
5. 패턴 객체
패턴 객체 객체는 re.compile()에 의해 반환됩니다. re 모듈에는 동일한 이름의 메서드가 많이 있습니다. 유사한 기능. 예:
>>>import re
>>>pa = re.compile('(d\+)')
>>>print pa.split('he has 2 books and 1 pen')
['he has ', '2', ' books and ', '1', ' pen']
>>>print pa.findall('he has 2 books and 1 pen')
['2', '1']
>>>print pa.sub('much', 'he has 2 books and 1 pen')
he has much books and much pen
로그인 후 복사
6. 일치 패턴
일치 패턴 값은 비트 OR 연산자 '|'를 사용하여 동시에 적용됨을 나타낼 수 있습니다. re.I | re.M과 같은 몇 가지 일반적인 플래그는 다음과 같습니다.
>>>pa = re.compile('abc', re.I)
>>>pa.findall('AbCdEfG')
>>>['AbC']
로그인 후 복사
이 기능은 영어로 이스케이프 문자 w
등 다국어 문자셋 사용 환경을 지원하기 위한 기능으로, [a-zA-Z0-9]
을 의미하며, 모두 영문자와 숫자로 이루어져 있습니다. 프랑스어 환경에서 사용하는 경우 일부 프랑스어 문자열이 일치하지 않습니다. 이 L 옵션을 추가하면 일치시킬 수 있습니다. 그러나 이는 중국어 환경에서는 거의 쓸모가 없는 것으로 보이며 여전히 한자와 일치하지 않습니다.
>>>pa = re.compile('^\d+')
>>>pa.findall('123 456\n789 012\n345 678')
>>>['123']
>>>pa_m = re.compile('^\d+', re.M)
>>>pa_m.findall('123 456\n789 012\n345 678')
>>>['123', '789', '345']
로그인 후 복사
.
号将匹配所有的字符。缺省情况下.
匹配除换行符\n
外的所有字符,使用这一选项以后,点号就能匹配包括换行符的任何字符。
# 这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")# 但是在这个模式下,如果你想匹配一个空格,你必须用'/ '的形式('/'后面跟一个空格)
로그인 후 복사
위 내용은 Python 표준 라이브러리의 re 모듈 학습에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!