re --- 正则表达式

本文深入解析了正则表达式的基本操作符、模式匹配规则和优先级,包括点号、字符集、数量词、边界匹配等。同时,通过经典实例展示了正则表达式的实际应用。此外,介绍了Python的re库,详述了findall、split、sub和search等主要功能函数的用法,帮助读者更好地掌握正则表达式在Python中的实践。
摘要由CSDN通过智能技术生成

1. 正则表达式常用操作符

操作符说明实例
.除换行以外的任何单个字符
[ ]字符集,对单个字符给出取值范围[abc]表示a或b或c、[a-z]表示a到z单个字符
[^ ]字符集,对单个字符给出排除范围[^abc]表示非a非b非c的单个字符
*前一个字符0次或无限次扩展ab*表示a、ab、abb、abbb、等
+前一个字符1次或者无限次扩展ab+表示ab、abb、abbb等
前一个字符0次或者1次扩展abc?表示ab或abc
{m}扩展前一个字符m次ab{2}c表示abbc
{m,n}扩展前一个字符m至n([m,n])次ab{1,2}c表示abc或abbc
|左右表达式任意一个abc|def表示abc或def
^匹配字符串开头^abc表示abc且在一个字符串的开头
$匹配字符串结尾$abc表示abc且在一个字符串的结尾
( )分组标记,内部只能使用 | 操作符(abc)表示abc,(abc|def)表示abc或def
\d单个数字,等价于[0-9]\D 为 \d 的对立面
\w单词字符,等价于[A-Za-z_0-9]\W 为 \w 的对立面
\s匹配单个空白符,包括空格、换行、tab缩进等\S 为 \s 的对立面
\b单词边界:\w和开头(结尾) 或者 \w 和 \W 之间cat\b 匹配 cat, tomcat不匹配cater,\B是\b的对立面

3. 操作符优先级

从高到低

圆括号()
数量词+ * ? {m,n}
序列和锚abc ^ $ \b \B
替换|

3. 模式匹配规则

对于 pattern, string:

  • 匹配规则:游标从string第一个字符开始与pattern匹配,匹配成功游标前进pattern的长度,不成功前进1

  • 贪婪匹配: *、+ 会尽可能长的匹配一个子串,如果需要最短匹配写成:*? 、+?

  • 空白串的匹配: a*, a?会匹配空串,匹配完空串游标需要加1(否则会无线匹配),注意和第一点不同。

2. 经典正则表达式实例

表达式描述
^[a-zA-Z]+$由26个字母组成的字符串
^[a-zA-Z0-9]+$由26个字母和数字组成的字符串
^-?\d+$整数形成的字符串
^[0-9]\*[1-9][0-9]\*$正整数形成的字符串
[1-9]\d{5}中国境内邮政编码,6位
[\u4e00-\u9fa5]匹配中文字符
\d{3}-\d{8}|\d{4}-\d{7}国内电话号码,010-68913536

3. Re库主要功能函数

函数功能
re.findall(pattern, string)搜索字符串,以列表类型返回全部能匹配的子串
re.split(pattern, string)将一个字符串以正则表达式匹配内容进行分割,返回列表类型
re.sub(pattern, repl, string)在string中用repl替换所有pattern的字串
re.search(pattern, string)字符串找到匹配样式的第一个位置,返回匹配对象。未匹配,返回None
re.match(pattern, string)只能匹配字符串开头相当于, re.search('^' + pattern, string)

re 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值