鱼C论坛

 找回密码
 立即注册
查看: 1060|回复: 7

[已解决]正则表达式谁能看懂指点一下?

[复制链接]
发表于 2020-9-20 15:02:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面的谁给我讲讲,看不懂啊,不是只匹配了一个b么?为什么不是用‘-’替换‘b’,出现那么多-?


  1. >>> p=re.compile('b*')
  2. >>> m=p.sub('-','abxd')
  3. >>> m
  4. '-a--x-d-'
复制代码
最佳答案
2020-9-20 16:27:45
b*的意思,是匹配0个或多个
看小甲鱼的解释:
* 这个元字符,当然它不是匹配 '*' 字符本身(我们说过元字符都是有特殊能力的),它用于指定前一个字符匹配零次或者多次。

每个位置都相当于有0个字符b,所以就会在每个位置插入一个 '-'
'abxd'
a 前面匹配到0个 b 插入一个 - ;a后面匹配到一个b,替换为 - ;b后面匹配到0个 b ,插入一个 - ;x后面匹配到0个 b,插入一个 - ;d后面匹配到0个 b,插入一个 -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-20 16:11:05 | 显示全部楼层
你只要替换b,就直接找b就行了
  1. import re
  2. p=re.compile('b')
  3. m=p.sub('-','abxd')
  4. print(m)
复制代码

a-xd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-20 16:13:58 | 显示全部楼层
疾风怪盗 发表于 2020-9-20 16:11
你只要替换b,就直接找b就行了

a-xd

这个我知道,我试了好几个,但这个看不懂,想知道原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 16:27:45 | 显示全部楼层    本楼为最佳答案   
b*的意思,是匹配0个或多个
看小甲鱼的解释:
* 这个元字符,当然它不是匹配 '*' 字符本身(我们说过元字符都是有特殊能力的),它用于指定前一个字符匹配零次或者多次。

每个位置都相当于有0个字符b,所以就会在每个位置插入一个 '-'
'abxd'
a 前面匹配到0个 b 插入一个 - ;a后面匹配到一个b,替换为 - ;b后面匹配到0个 b ,插入一个 - ;x后面匹配到0个 b,插入一个 - ;d后面匹配到0个 b,插入一个 -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 16:35:00 | 显示全部楼层
* 匹配前面的字符零次或多次, 例如: go*gle 该表达式可以匹配的范围从 ggle到goo.......gle
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-20 18:58:06 | 显示全部楼层
sunrise085 发表于 2020-9-20 16:27
b*的意思,是匹配0个或多个
看小甲鱼的解释:

哇,理解了,好厉害,但是最后是在发现到结尾“时又理解为匹配0次?所以末尾又多一个‘-’?
  1. >>> p=re.compile('c*')
  2. >>> p.sub('-','abxd')
  3. '-a-b-x-d-'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 19:24:51 | 显示全部楼层
嘟嘟酱君 发表于 2020-9-20 18:58
哇,理解了,好厉害,但是最后是在发现到结尾“时又理解为匹配0次?所以末尾又多一个‘-’?

是的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-20 19:35:03 | 显示全部楼层

非常感谢大神指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表