为什么匹配规制里的.要用小括号括起来

正在回答 回答被采纳积分+1

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

1回答
好帮手慕凡 2021-12-01 10:29:58

同学,你好!

1、'.'可以匹配除换行符 \n 之外的任何单字符;

2、'(.)\1+':使用括号(.)代表为组第一次出现则为第一组,\1引用的是第一个括号(分组)中匹配成功后的内容,r'(.)\1+'将第一组中"."匹配的内容匹配多次(如:“我我我我我”),r'\1'将第一组中匹配的内容匹配一次(如:“我”);

3、re.sub(r'(.)\1+',r'\1',res):将r'(.)\1+'匹配到的内容(如:“我我我我我”)替换为r'\1'(如:“我”)

616558ee09972ae711490360.jpg

祝学习愉快~

  • 提问者 吴老师在线叛逃 #1

    如果把匹配规则‘(.)\1+’换成这样子可以吗‘(.+)\1’

    2021-12-01 11:09:53
  • 同学,你好!不可以把‘(.)\1+’换成‘(.+)\1’

    (.)\1+可以匹配到一个“我”匹配多次,(.+),\1会匹配到多个“我”匹配多次,所以不可以将‘(.)\1+’换成‘(.+)\1’,祝学习愉快~

    2021-12-01 13:09:03
  • 你好

    1. 请问sub可以理解成findall的匹配方式吗?

    2. (.)\1+ 的\1是当被匹配中了,\1是表示第一组,可是按照(.)的匹配应该是匹配到多组,只用\1的话,不就只会匹配到第一组而已吗?

    2022-01-28 01:33:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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