Python 正则表达式分割,任意长度整数
我想在Python中做一个简单的正则表达式分割。这个字符串的格式是FooX,其中Foo是任意字符串,X是一个随意的整数。我觉得这应该很简单,但我就是搞不定。
顺便问一下,有人能推荐一些好的正则表达式学习资料吗?
5 个回答
1
保持简单:
>>> import re
>>> a = "Foo1String12345"
>>> re.split(r'(\d+)$', a)[0:2]
['Foo1String', '12345']
1
使用分组:
import re
m=re.match('^(?P<first>[A-Za-z]+)(?P<second>[0-9]+)$',"Foo9")
print m.group('first')
print m.group('second')
使用搜索:
import re
s='Foo9'
m=re.search('(?<=\D)(?=\d)',s)
first=s[:m.start()]
second=s[m.end():]
print first, second
6
你不能使用 split()
方法,因为它需要消耗一些字符,但你可以用普通的匹配方式来实现这个功能。
>>> import re
>>> r = re.compile(r'(\D+)(\d+)')
>>> r.match('abc444').groups()
('abc', '444')