>백엔드 개발 >파이썬 튜토리얼 >Python에서 정규식을 사용하는 방법과 정규식 일치 규칙은 무엇입니까?

Python에서 정규식을 사용하는 방법과 정규식 일치 규칙은 무엇입니까?

WBOY
WBOY앞으로
2023-05-12 18:16:211393검색

1 가이드 라이브러리

import re

2 템플릿 사용

re_pattern = re.compile(pattern, flags=0)
result = re.findall(re_pattern,string)

3 Description

Parameter Description
pattern r'abc' 등을 사용할 수 있습니다. Match abc
flags

선택 사항, 플래그 비트, 제어 일치 방법, 선택 값:

re.I 대소문자 무시

re.L 특수 문자 집합 w W b B s S를 나타냄, 현재 환경에 따라 다름

re.M 여러 줄 모드

re.S 줄 바꿈을 포함한 모든 문자

re.U 유니코드 문자 집합에 따라 문자를 구문 분석합니다.

re.X 가독성을 높이려면 공백과 # 뒤에 오는 주석을 무시합니다.

re.A ASCII 코드에 따라 문자를 구문 분석합니다.

string 일치할 문자열
Method Description
compile 정규식 수식 컴파일, 정규식 생성 (패턴) 객체
findall 전체 텍스트 일치, 일치하는 결과가 목록 형식으로 반환됨

4 示例

以下代码用来在字符串 str 中匹配符合如下规则的字符串:

中英文括号开头+1个大写字母+1个或无限个数字+0个或1个字符“.”+0个或1个字符“/”+0个或无限个数字+中英文括号结尾

# 导库
import re
# 待处理字符串
str = '小分裂细胞型(弥漫性)非霍奇金淋巴瘤(M96720/3)(Y97.1)(Y77)(yyy)'
# 设定匹配规则,编译
re_str = re.compile(r'[(|(][A-Z][0-9]+[.]?[/]?[0-9]*[)|)]', re.S)
# 匹配
ans = re.findall(re_str,str)
# 打印
print(ans)

在字符串 str 中的匹配结果如下,可见有三个字符串符合匹配规则:

Python에서 정규식을 사용하는 방법과 정규식 일치 규칙은 무엇입니까?

5 正则表达式匹配规则

语法

描述

正则表达式示例

对应可匹配字符串示例

一般字符 匹配自身 abc abc
元字符


. 除了换行符之外的任意单个字符 a.c abc
* 匹配前面一个字符0或无限次 ab*

a

abbb

+ 匹配前面一个字符1次或无限次 ab+

ab

abbb

? 匹配前面一个字符0次或1次 ab?

a

ab

\ 转义符,使后面一个字符保持原来的意思 a\.b a.b
[]

字符集,里面的字符可以是任意数量个字符,也可以是一个范围,比如可以是[abc]或者[a-c],均表示匹配abc中的一个字符。同时,可以将第一个字符设为^,用来表示取反,如[^abc]表示除了abc以外的字符。


注意,所有的特殊字符在[]内都失去其原有的特殊含义,如[.]仅表示匹配字符.而不是匹配任意字符了,当然,如果要使用]、-或^三个字符,仍需要使用转义字符\

[abc]

[a-c]

a

b

c

{m} m是一个非负整数,表示匹配前一个字符m次 abc{2} abcc
{m,n} m和n都是非负整数,且m≤n,表示最少匹配m次且最多匹配n次 ab{2,4}c abbc
| 逻辑或,匹配左右表达式中的任意一个。具有“短路”特点,先匹配左侧表达式,再匹配右侧表达式。建议用()括起来,否则会作用于整个正则表达式 abc|123

abc

123

() 括号,将表达式括起来作为一个分组。分组表达式是一个整体 a(bc)?d

ad

abcd

定位符


^ 匹配字符串的开头字符 ^abc abc
$ 匹配字符串的结尾字符 abc$ abc
\b

匹配一个单词的边界

如\bab表示匹配字符串ab且ab前面要是空格

如ab\b表示匹配字符串ab且ab后面要是空格

\bab

可以匹配到abc中的ab

无法匹配到cab中的ab

\B 匹配非边界 \Bab

可以匹配到cab中的ab

无法匹配到abc中的ab

预定义字符集


\d 匹配数字,等价于[0-9] a\dc a1c
\D 匹配非数字,等价于[^\d] a\Dc abc
\s 匹配空白字符,包括空格、制表符、换页符等 a\sc a c
\S 匹配非空白字符,等价于[^\s] a\Sc abc
\w 匹配字母数字下划线,等价于[a-zA-Z0-9_] a\wc a_c
\W 匹配非字母数字下划线,等价于[^\w] a\Wc a c

위 내용은 Python에서 정규식을 사용하는 방법과 정규식 일치 규칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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