>>> m = re.split( ‘\d+’ , ’dkjj23jjjj44’)
>>>m
[‘dkjj’ , ‘jjjj’ , ‘’ ]
>>> m = re.split( ‘(\d+)’ , ’dkjj23jjjj44’) #匹配部分加上()
>>>m
[‘dkjj’ , ‘23’ , ‘jjjj’ , ‘44’ , ‘’ ]
>>> m = re.split( ‘\d+’ , ’dkjj23jjjj44as’) #匹配部分加上了()
>>>m
[‘dkjj’ , ‘jjjj’ , ‘as’ ]
>>> m = re.split( ‘(\d+)’ , ’dkjj23jjjj44as’)
>>>m
[‘dkjj’ , ‘23’ , ‘jjjj’ , ‘44’ , ‘as’ ]
在匹配部分加上()之后所切出的结果是不同的,没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,这个在某些需要保留匹配部分的使用过程是非常重要的。
看一道题
题目描述
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
示例1
输入
abcd12345ed125ss123456789
输出
123456789
import re
s = input()
ss = re.split(r'\D', s)
print(max(ss, key=len))