python正则表达式:匹配边界

"本文介绍了Python中使用正则表达式进行字符串匹配的一些基本操作,包括$用于匹配结尾字符,^用于匹配开头字符,以及和B用于匹配单词边界和非单词边界。通过实例展示了如何在实际编程中运用这些规则来检查字符串是否以特定字符或模式开始或结束。"
摘要由CSDN通过智能技术生成

$ 匹配结尾字符

定义整个字符串必须以指定字符串结尾

import re
print(re.match('.*d$','2testaabcd')) #字符串必须以d结尾
a=re.match('.*d$','2testaabcd')
print(a.group())
print(re.match('.*c$','2testaabcd'))  #字符串不是以c结尾,返回none
b=re.match('.*c$','2testaabcd')
#注:rP:$,原教程第二个没有添加$,RP自己发现了
c=re.match('.*c$','2testaabc')
print(c.group())


输出:

<re.Match object; span=(0, 10), match='2testaabcd'>
2testaabcd
None
2testaabc

^ 匹配开头字符

定义整个字符串必须以指定字符开头

import re
print(re.match('^2','2stoooabatestas')) #规定必须以2开头,否则none
a=re.match('^2','2stoooabatestas')
print(a.group())
print(re.match('^2s','2stoooabatestas')) #必须以2s开头
b=re.match('^2s','2stoooabatestas')
print(b.group())
c=re.match('^32s','32stoooabatestas')
print(re.match('^2','32stoooabatestas'))
print(c.group())

输出:

<re.Match object; span=(0, 1), match='2'>
2
<re.Match object; span=(0, 2), match='2s'>
2s
None
32s

\b 匹配一个单词的边界

\b:表示字母数字与非字母数字的边界,非字母数字与字母数字的边界。即下面ve的右边不能有字母和数字

import re
print(re.match(r'.*ve\b','ve.2testaabcd'))  #因为在python中\代表转义,所以前面加上r消除转义
a=re.match(r'.*ve\b','ve.2testaabcd')
print(a.group())
print(re.match(r'.*ve\b','ve2testaabcd'))
print(re.match(r'.*ve\b','vep2testaabcd'))#rp:遇到字母或数字不显示

 输出:

<re.Match object; span=(0, 2), match='ve'>
ve
None
None

\B 匹配非单词边界

import re
print(re.match(r'.*ve\B','2testaavebcdve'))  #ve的右边需要有字母或者数字
a=re.match(r'.*ve\B','2testaavebcdve')
print(a.group())
print(re.match(r'.*ve\B','2testaave3bcdve'))
print(re.match(r'.*ve\B','2testaave.3bcdve'))#点
print(re.match(r'.*ve\B','2testaave 3bcdve'))#空格
print(re.match(r'.*ve\B','2testaave*3bcdve'))#星号

 输出:

<re.Match object; span=(0, 9), match='2testaave'>
2testaave
<re.Match object; span=(0, 9), match='2testaave'>
None
None
None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值