r'\w+\b' 跟 r'\w+$'的 差別

r'\w+\b' 跟 r'\w+$'的 差別

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!

1、\b是匹配的单词边界,即一个单词边界的位置;

2、$匹配以某一字符结尾;

区别如下:

6226cc360994783a09440547.jpg

参考代码:

import re

s = 'study hard and make progress every day'
#从study匹配,匹配study后匹配到边界线,hard and make progress不满足匹配条件
#every和day满足字母“y”前面的有1个或多个字符(\w+),而“y”后面是单词的边界线匹配条件
res = re.compile(r'\w+y\b', re.I)  # \b为边界
ret = res.findall(s)
print(ret)
#'\w+y$'可以匹配以y字母结尾,但\w+无法匹配day前到空格,所以最终匹配结果是'day'
res = re.compile(r'\w+y$', re.I)  # $匹配以某一字符结尾
ret = res.findall(s)
print(ret)

祝学习愉快~


  • 精慕门_learner 提问者 #1

    x\b -word boundary - 它只要是在它的隱式佔位符前有x這個字母即可?

    x$ -end of string, or end of line - 而它只會匹配字符串的最後一個字是否符合規則嗎?


    2022-03-08 19:02:09
  • 好帮手慕凡 回复 提问者 精慕门_learner #2

    同学,你好!

    1、x\b中\b匹配的是单词边界,匹配的是单词结束前有x字母即可;

    2、x$匹配字符串中最后一个字符是否是x;

    祝学习愉快~


    2022-03-09 09:43:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师