正则表达式----re模块

本文介绍了正则表达式的常用匹配规则及Python中re模块的基本使用方法,包括match、search、findall等功能,并通过示例说明了如何进行字符串匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1> 正则表达式:就是字符串的匹配规则,在多数编程语言里都有相应的支持

2>常见匹配规则

匹配符用法实例匹配举例
.匹配一个任意除换行符'\n'外的字符a.ab
*匹配前一个字符的0次或无限次,类似{0,max}ab*a或者abbbb
+匹配前一个字符的1次或无限次,类似{1,max}ab+ab或者abbbb
匹配前一个字符的0次或1次,类似{0,1}ab?a或者ab
{m}匹配前一个字符的m次a{2}baab
{m, n}匹配前一个字符的m到n次a{1, 3}bab或aab或aaab
\d匹配一个数字,等同于[0-9]a\da1
\D匹配一个非数字a\Da%
\w匹配一个合法字符[A-Za-z0-9_]a\wa1或ab或a_
\W匹配除合法字符外的,如特殊字符等a\Wa@
\s匹配空白字符:空格,\t, \r, \n 等a\sba b
\S匹配非空白字符a\Sba#b
^匹配字符串开头^abab
$匹配字符串结尾ab$ab
\A类似^\Aabab
\Z类似$ab\Zab
\转义符,变成普通字符,无其他含义a\aba.b
[...]字符集,可填写任意字符,默认单个匹配,也可设定范围a[1%]ba1b或a%b
|或,|左右任意匹配一个,顺序从左至右,匹配上则跳出逻辑a|ba或b
(...)分组表达式,括号内可作为整体(a|b){2}ab或bb或ba

3>re的匹配语法

  • re.match 从头开始匹配
  • re.search 全局匹配,从左至右,匹配到一个就不再匹配
  • re.findall 把所有匹配到的字符放到以列表中的元素返回
  • re.split 以匹配到的字符当做列表分隔符
  • re.sub 匹配字符并替换
  • re.fullmatch 全部匹配
 3.1>re.match(pattern, string, flags=0) # 两个参数,表达式和字符串

 例如re.match('\d', '1a')能匹配到1 ,而re.match('\d', 'a1')则匹配不到

 

 3.2>re.search(pattern, string, flags=0)

例如re.search('\d', '1a')能匹配到1 ,而re.search('\d', 'a1')也能匹配到1

 

 3.3>re.findall(pattern, string, flags=0)

例如re.findall('\d', '1a1b1')能匹配到所有1 并返回所有匹配值的列表格式,match和search都只能匹配单个值,findall能

返回所有符合条件的值


 3.4>re.sub(pattern, repl, string, count=0, flags=0) # 三个参数,表达式,替换值,字符串,count要换几次

 例如 re.sub('\d+', 'a', '123b'),将返回ab


 3.5>re.split(pattern, string, maxsplit=0, flags=0) 

 例如 re.split('\d|\W', 'aa-bb+cc4dd') # 以数字或特殊字符切割


3.6>re.fullmatch(pattern, string, flags=0) # 完全匹配,

例如re.fullmatch('([1-9]|[1-9][0-9]|1\d{2}|2[0-5][0-5])\\.', '255.')可以匹配1-255之间的数据加一个.,其他都不匹配


 re.fullmatch('([1-9]|[1-9][0-9]|1\d{2}|2[0-5][0-5])(\\.([0-9]|[1-9][0-9]|1\d{2}|2[0-5][0-5])){3}可以匹配

 1.0.0.0 - 255.255.255.255

4>re.compile(pattern, flags=0)

 可以把正则表达式编译成一个正则表达式对象。对于经常要用的正则表达式,可以提高效率。(已提前编译好

,直接在编译后的对象上匹配数据即可)

 

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值