首页 新闻 搜索 专区 学院

python 简单的 正则的问题,

-2
[已解决问题] 解决于 2017-04-26 16:21
r = '\d[1-9999]'
a = 'x1'
jg = re.findall(r,a)
print(jg[0])

取出那个1.

当是x11以上的数字时可以。

但一小于等于x10就出错:IndexError: list index out of range    (在print那行)

 

这是为什么??

还没有的主页 还没有 | 菜鸟二级 | 园豆:495
提问于:2017-04-22 22:44
< >
分享
最佳答案
1

你的正则就是要求必须有一个数字吧,或则按你的意思,后面那个应该是大括号吧

奖励园豆:5
idlo | 菜鸟二级 |园豆:241 | 2017-04-23 14:41

也就是说你输出的时候没有匹配到值

idlo | 园豆:241 (菜鸟二级) | 2017-04-23 14:46

@isoe: 是的,百度了一下,然了大括号。可以了。

但我有点不明白。

为什么这样写,小于x10的时候就取不到呢,不是在1-9999的范围里吗!

还没有 | 园豆:495 (菜鸟二级) | 2017-04-23 19:32

@还没有: 现在这个方括号表示的是1到9999之间的数字,大括号才是表示出现的次数

idlo | 园豆:241 (菜鸟二级) | 2017-04-23 19:39

@isoe: 但假如是a='x9'

正则取出9,不就是在1-9999之间吗。

为什么会出错呢?

还没有 | 园豆:495 (菜鸟二级) | 2017-04-24 11:50

@还没有: 你前面那个\d也需要匹配一位数字,所以数字最少需要2位,多去看看正则的语法

idlo | 园豆:241 (菜鸟二级) | 2017-04-24 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册