鱼C论坛

 找回密码
 立即注册
查看: 541|回复: 3

[已解决]正则表达式*的问题

[复制链接]
发表于 2019-5-24 09:13:08 | 显示全部楼层 |阅读模式

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

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

x

元字符 : *

匹配规则 :匹配前面出现的正则表达式0次或多次

In [10]: re.findall('ab*','aabbabbb')
Out[10]: ['a', 'abb', 'abbb']

ab* 为何结果中会有'a' ,不是匹配ab开头的吗?
'匹配前面出现的正则表达式' 这个前面是指 哪个前面 'ab'前面? 还是'*'前面?
0次不就是不就是没有次吗? 这个0难道是序数 0 也就是1次?

请知道的人,帮忙解答一下.感谢.
最佳答案
2019-5-24 09:44:01
  1. import re

  2. s='aabbabbb'

  3. myre= re.findall('ab*',s)
  4. print(myre)
  5. '''
  6. *:匹配前面出现的正则表达式0次或多次
  7.    就是匹配 0到无穷大)
  8.    
  9. ab*  这句的意思 :a开头后边跟0——多个b
  10.    
  11. ['a', 'abb', 'abbb']

  12. ab*  0次 b就没有   结果a
  13. ab   1次              ab
  14. ab   2次              abb
  15. ab   3次              abbb
  16. ab   4次              没有,结束
  17. '''
  18. myre= re.findall('ab.*',s)
  19. #  ab.*   这是以ab开头后面跟任意字符
  20. print(myre)
  21. #['abbabbb']
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-24 09:43:24 | 显示全部楼层
ab*   是b 0次或多次
(ab)*  想ab 要加括号吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-24 09:44:01 | 显示全部楼层    本楼为最佳答案   
  1. import re

  2. s='aabbabbb'

  3. myre= re.findall('ab*',s)
  4. print(myre)
  5. '''
  6. *:匹配前面出现的正则表达式0次或多次
  7.    就是匹配 0到无穷大)
  8.    
  9. ab*  这句的意思 :a开头后边跟0——多个b
  10.    
  11. ['a', 'abb', 'abbb']

  12. ab*  0次 b就没有   结果a
  13. ab   1次              ab
  14. ab   2次              abb
  15. ab   3次              abbb
  16. ab   4次              没有,结束
  17. '''
  18. myre= re.findall('ab.*',s)
  19. #  ab.*   这是以ab开头后面跟任意字符
  20. print(myre)
  21. #['abbabbb']
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-24 10:00:05 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 02:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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