heroinhell 发表于 2016-08-24 12:37

python非贪婪正则表达式的问题

代码:
import re

s='sdfsdfklj,{ goodby jone,sdfkljsl,dfjl },sdjfljl{sd,dfkljsdklf}'

m=re.search(r"{.*\,.*?}",s)
print "m is :",m.group(0)

n=re.search(r"{.*?}",s)
print "n is :",n.group(0)

输出:
m is : { goodby jone,sdfkljsl,dfjl },sdjfljl{sd,dfkljsdklf}
n is : { goodby jone,sdfkljsl,dfjl }


我不明白m中就是加了一个逗号,都是使用的贪婪表达式,为什么第一个m就不能得到正确结果?

另外如何写才能将两个{}及里面的内容取出来?

reb00t 发表于 2016-08-24 14:08

In : n=re.findall(r"{.*?}",s)

In : n
Out: ['{ goodby jone,sdfkljsl,dfjl }', '{sd,dfkljsdklf}']

heroinhell 发表于 2016-08-24 14:10

谢谢楼上,我明白为什么加上一个逗号非贪婪为什么失效了。
页: [1]
查看完整版本: python非贪婪正则表达式的问题