Python__正则表达式(一)

文章详细介绍了元字符在正则表达式中的作用,包括匹配单个字符、重复次数以及使用反义元字符和重复限定符等。通过实例展示了如何使用Python的re模块进行字符串匹配,如IP地址验证、电话号码格式检查等。

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

        用处:通过元字符及其不同的组合来构成(预定义的特定模式),用来匹配一定具有共同特征的字符串

目录

元字符

元字符实例


元字符

常用元字符:

代码   说明
.       默认匹配换行符以外的单个字符,单行模式下也可以匹配换行符

*              匹配位于*之前的字符或子模式的0次或多次重复

+             匹配位于+之前的字符或子模式的1次或多次重复

?            匹配位于?之前的字符或者子模式0次或1次出现

\num       此处的num是一个表示子模式序号的正整数
\w       匹配字母或数字或下划线
\s     匹配任意的空白符
\d     匹配数字
\b     匹配单词的开始或结束

\n             匹配换行符

\r              匹配回车符
^      匹配行头
$      匹配行尾

\\              匹配  \

常用反义元字符:
代码   说明
\W      匹配任意不是字母,数字,下划线,汉字的字符
\S       匹配任意不是空白符的字符
\D    匹配任意非数字的字符
\B       匹配不是单词开头或结束的位置
[^x]     匹配除了x以外的任意字符
[^abc]    匹配除了abc这几个字母以外的任意字符

常用重复限定符:
代码    说明
*       重复零次或更多次
+      重复一次或更多次
?      重复零次或一次
{n}    重复n次
{n,}      重复n次或更多次
{n,m}   重复n到m次

其它:

[ ]              匹配位于[]中的任意一个字符,表示范围

( )              将位于()中的内容作为一个整体对待,表示子模式


 

元字符实例

1.\num详解

        在匹配过程中引用前面子模式已匹配的字符

        例如:

import re
a = "abc><abc"
n = re.match(r"(.+)><\1",a)
print(n)

运行结果是

<re.Match object; span=(0, 8), match='abc><abc'>

        此外:

# 例4-6  查找文本中ABAC和AABB形式的成语。
from re import findall
text = '''行尸走肉、金蝉脱壳、百里挑一、金玉满堂、
背水一战、霸王别姬、天上人间、不吐不快、海阔天空、
情非得已、满腹经纶、兵临城下、春暖花开、插翅难逃、
黄道吉日、天下无双、偷天换日、两小无猜、卧虎藏龙、
珠光宝气、簪缨世族、花花公子、绘声绘影、国色天香、
相亲相爱、八仙过海、金玉良缘、掌上明珠、皆大欢喜\
浩浩荡荡、平平安安、秀秀气气、斯斯文文、高高兴兴'''
pattern = r'(((.).\3.)|((.)\5(.)\6))'
for item in findall(pattern, text):
    print(item[0])

 该题pattern行中,\3,\5,\6分别是对第三个,第五个,第六个左括号在内的子模式进行再次调用

运行结果是

不吐不快
绘声绘影
相亲相爱
浩浩荡荡
平平安安
秀秀气气
斯斯文文
高高兴兴

 2.检验是否为合法IP地址

'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\$'

3.检验是否为合法电话号码形式

'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$'

4.匹配最多带有两位小数的数

'^(-)?\d+(\.\d{1,2})?$'

5.匹配常见汉字

'[\u4e00-\u9fa5]'

6.匹配常见邮箱

'^\w+@(\w+\.)+\w+$'

7.P用法

'((?P<f>\b\w+\b)\s+(?P=f))'#匹配连续两次出现的单词

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值