程序猿大战Python——正则表达式——正则的常见规则二

匹配开头和结尾

==目标:==了解文本数据开头和结尾的匹配。

匹配开头和结尾语法:

代码功能
^匹配字符串开头。
$匹配字符串结尾。

例如,一起来完成:

(1)使用^来匹配非数字的单个字符;

(2)使用$来匹配www.baidu.com的结尾处。

import re
​
# result = re.match("","").group()
# print(f"结果:{result}")
​
# 匹配开头: 非数字
# result = re.match("[0-9]","1").group()
# result = re.match("[^0-9]","g").group()
# result = re.match("[^0-9]","heima").group()
# result = re.match("[^0-9]+","heima").group()
# print(f"结果:{result}")
​
# 匹配结尾
# result = re.match(".+","www.baidu.com").group()
# result = re.match("www.baidu.com","www.baidu.com").group()
# result = re.match("www.baidu.com$","www.baidu.com.cn.gov.edu").group()
result = re.match("www.baidu.com$","www.baidu.com").group()
print(f"结果:{result}")

==总结:==

(1)当要限定结尾处内容时,可以使用()符号。A、b;==B、$==。

匹配分组

==目标:==掌握分组数据的匹配使用。

要获取分组数据信息,语法:

代码功能
X|Y匹配X或Y的任意一个表达式。
(X)将括号中字符X作为一个分组用于获取,且从1开始统计分组。

例如,一起来完成:

(1)使用X|Y来匹配出0-100之间的所有数字字符结果;

(2)使用(X)来匹配出含有163、126、qq这几个内容且用户名位数为4-12位的邮箱,如itcast@163.com等。

import re
​
# result = re.match("","").group()
# print(f"结果:{result}")
​
# 0-100
# result = re.match("[1-9]?[0-9]|100","8").group()
# result = re.match("[1-9]?[0-9]|100","87").group()
# result = re.match("[1-9]?[0-9]|100","99").group()
# result = re.match("[1-9]?[0-9]|100","100").group()  # 10
# result = re.match("100|[1-9]?[0-9]","100").group()
# result = re.match("100|[1-9]?[0-9]","10").group()
# print(f"结果:{result}")
​
# 邮箱号
# result = re.match("(\w{4,12})@(126|163|qq).(com|cn)","hellopy@qq.com").group()
# result = re.match("\w{4,12}@(126|163|qq).com","hellopy@163.com").group(1)
# result = re.match("(\w{4,12})@(126|163|qq).com","hellopy@163.com").group(1)
# result = re.match("(\w{4,12})@(126|163|qq).com","hellopy@163.com").group(2)
result = re.match("\w{4,12}@(126|163|qq).com","hellopy@qq.com").group()
# print(f"结果:{result}")  # 思考: 邮箱来源: 126/163/qq    获取用户名
print(f"结果:{result[:result.find('@')]}")

==总结:==

(1)如果在涉及到要获取分组数据时,一定记得要使用()来写正则;

(2)注意:要获取分组数据时,在正则中的()从1开始计算分组,比如获取第1组,则group()的括号中应该填写()。==A、1==;B、2。

Python正则表达式的用法非常灵活。可以通过使用re模块来对字符串进行匹配和操作。下面是一些常用的用法和方法: 1. 使用re模块的findall方法可以在字符串中找到所有匹配正则表达式的子串,并返回一个列表。例如,给定字符串s = '1python123python666python888',我们可以使用re.findall('python', s)来找到所有与正则表达式'python'匹配的子串,结果为['python', 'python', 'python']。 2. 使用re模块的search方法可以在字符串中查找第一个匹配正则表达式的子串,并返回一个匹配对象。如果找到匹配的子串,可以通过.group()方法获取匹配的内容。例如,给定字符串s = '1python123python666python888',通过re.search('python', s),可以得到一个匹配对象,并通过.match()方法获取匹配的内容。 3. 使用re模块的match方法可以从字符串的开始位置查找匹配正则表达式的子串,并返回一个匹配对象。如果找到匹配的子串,同样可以通过.group()方法获取匹配的内容。例如,给定字符串s = '1python123python666python888',通过re.match('1', s),可以得到一个匹配对象,并通过.group()方法获取匹配的内容。 4. 使用re模块的sub方法可以将匹配正则表达式的子串替换为指定的字符串。例如,给定字符串s = '1python123python666python888',我们可以使用re.sub('python', 'Java', s)来将所有匹配正则表达式'python'的子串替换为'Java',结果为'1Java123Java666Java888'。 总结起来,Python正则表达式的用法包括findall、search、match和sub等方法,可以用来查找、匹配和替换字符串中的子串。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

困了就倒头睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值