首页新闻找找看学习计划

正则表达式匹配

1
悬赏园豆:5 [待解决问题]

(pyenv)[daq@lhaaso01 draft]$ cat cc.py
import re
str1='iii amiiii ssdii i '
str2=re.findall('i*',str1)
print(str2)

(pyenv)[daq@lhaaso01 draft]$ python cc.py
['iii', '', '', '', 'iiii', '', '', '', '', 'ii', '', 'i', '', '']

为什么会匹配出空字符呢? str1里没有空字符呀?

小荷才楼尖尖角的主页 小荷才楼尖尖角 | 初学一级 | 园豆:138
提问于:2019-03-12 21:45

你的最终目的是要拿到什么字符串?

BUTTERAPPLE 8个月前

@BUTTERAPPLE: 我就是偶尔看到一篇博客,然后里面有一段代码,不是很明白

小荷才楼尖尖角 8个月前
< >
分享
所有回答(3)
0

star * 表示 Match 0 or more of the preceding token

BUTTERAPPLE | 园豆:2918 (老鸟四级) | 2019-03-12 22:38

对呀,然后为啥会有匹配出来空字符呢?

支持(0) 反对(0) 小荷才楼尖尖角 | 园豆:138 (初学一级) | 2019-03-13 09:10

@小荷才楼尖尖角: 你理解一下 * 的含义,表示匹配你前面那个字符 0 个或多个,所以会匹配到空字符。

支持(1) 反对(0) BUTTERAPPLE | 园豆:2918 (老鸟四级) | 2019-03-13 09:48
0

匹配了你中间的空格

thelovelybugfly | 园豆:255 (菜鸟二级) | 2019-03-13 09:33
0

str1='iii amiiii ssdii i '
这不是有空格麽。。。

多安分 | 园豆:326 (菜鸟二级) | 2019-03-13 09:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册