Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan ungkapan biasa dalam Python dan apakah peraturan padanan ungkapan biasa

Cara menggunakan ungkapan biasa dalam Python dan apakah peraturan padanan ungkapan biasa

WBOY
Lepaskan: 2023-05-12 18:16:21
ke hadapan
1390 orang telah melayarinya

1 Panduan

import re
Salin selepas log masuk

2 Gunakan templat

re_pattern = re.compile(pattern, flags=0)
result = re.findall(re_pattern,string)
Salin selepas log masuk

3 Penerangan

< td>Aksara untuk dipadankan rentetan
参数描述
pattern匹配的正则表达式,如 r'abc' 可用来匹配abc
flags

可选,标志位,控制匹配方式,可选值:

re.I 忽略大小写

re.L 表示特殊字符集w W b B s S,依赖于当前环境

re.M 多行模式

re.S 包括换行符在内的任意字符

re.U 根据Unicode字符集解析字符

re.X 为了增加可读性,忽略空格和#后面的注释

re.A 根据ASCII码解析字符

string待匹配字符串
Parameter
方法描述
compile编译正则表达式,生成一个正则表达式(Pattern)对象
findall全文匹配,匹配结果以列表形式返回
<🎜>Penerangan<🎜>
corak Ungkapan biasa dipadankan, Contohnya, r'abc' boleh digunakan untuk memadankan abc
bendera

Pilihan, bit bendera, kaedah pemadanan kawalan, nilai pilihan:

p>

re.I Abaikan huruf besar

re.L Mewakili set aksara khas w W b B s S, bergantung pada persekitaran semasa

re.M Mod berbilang baris< /p>

re.S Mana-mana aksara termasuk baris baharu

re.U Menghuraikan aksara mengikut set aksara Unicode

re.X Untuk meningkatkan kebolehbacaan, abaikan Komen selepas ruang dan #

re.A Parsing aksara mengikut kod ASCII

rentetan
< tr>
<🎜>kaedah<🎜><🎜 >Penerangan<🎜>
kompilKompilasi ungkapan biasa dan jana objek ungkapan biasa (Corak)
cariPadanan teks penuh, hasil padanan dikembalikan dalam bentuk senarai

4 示例

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

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

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

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

Cara menggunakan ungkapan biasa dalam Python dan apakah peraturan padanan ungkapan biasa

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

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam Python dan apakah peraturan padanan ungkapan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan