【发布时间】:2014-05-17 22:55:10
【问题描述】:
我对正则表达式的经验并不丰富,但我已经阅读了很多关于它的内容。假设有一个字符串s = '111234' 我想要一个将字符串拆分为L = ['111', '2', '3', '4'] 的列表。我的方法是让一组检查它是否是数字,然后检查该组的重复。像这样的
L = re.findall('\d[\1+]', s)
我认为\d[\1+] 基本上会检查“数字”或“数字+”相同的重复。我认为这可能会做我想要的。
【问题讨论】:
-
你知道字符串是否只包含数字吗?
-
@thefourtheye :不假设它也会包含非数字
-
我的印象是您正在寻找
r_e = "(1*)(2*)(3*)(4*)",它给出了re.findall(r_e, s)[0]=>('111', '2', '3', '4')。 -
通过列表排序集合:如果不需要排序则可以使用
r_e = "((?P<o>1+)|(?P<to>2+)|(?P<th>3+)|(?P<f>4+))*"然后re.search(r_e, s).group('o', 'to', 'th', 'f')