目标:给定一个数字(它可能很长并且大于 0),我想得到五个最不重要的数字,在该数字的末尾删除任何 0。
我试图用正则表达式解决这个问题,在 RegexBuddy 的帮助下,我来到了这个:
[\d]+([\d]{0,4}+[1-9])0*
但是python无法编译它。
>>> import re
>>> re.compile(r"[\d]+([\d]{0,4}+[1-9])0*")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/re.py", line 188, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.5/re.py", line 241, in _compile
raise error, v # invalid expression
sre_constants.error: multiple repeat
问题是“{0,4}”之后的“+”,它似乎在 python 中不起作用(即使在 2.6 中)
我怎样才能编写一个有效的正则表达式?
PS:我知道你可以开始除以 10,然后使用余数 n%100000 ......但这是关于正则表达式的问题。