假设我有一个字符串:
teststring = "1.3 Hello how are you 1.4 I am fine, thanks 1.2 Hi There 1.5 Great!"
That I would like as:
testlist = ["1.3 Hello how are you", "1.4 I am fine, thanks 1.2 Hi There", "1.5 Great!"]
基本上,只在递增的数字上拆分,差值为0.1(即1.2到1.3)。
有没有一种方法可以使用正则表达式拆分,但仅捕获递增的连续数字?我使用Python编写了代码,使用自定义re.compile()依次迭代每个数字,它还可以,但非常难以处理。
类似于这样(其中parts1_temp是字符串中给定的x.x.数字列表):
parts1_temp = ['1.3','1.4','1.2','1.5']
parts_num = range(int(parts1_temp.split('.')[1]), int(parts1_temp.split('.')[1])+30)
parts_search = ['.'.join([parts1_temp.split('.')[0], str(parts_num_el)]) for parts_num_el in parts_num]
#parts_search should be ['1.3','1.4','1.5',...,'1.32']
for k in range(len(parts_search)-1):
rxtemp = re.compile(r"(?:"+str(parts_search[k])+")([\s\S]*?)(?=(?:"+str(parts_search[k+1])+"))", re.MULTILINE)
parts_fin = [match.group(0) for match in rxtemp.finditer(teststring)]
但这太丑陋了。有没有更直接的正则表达式方法来做到这一点?我想这是某个人在某个时候使用正则表达式时想要的功能,但我找不到任何解决方法(也许纯正则表达式不可能)。
\d\.\d
的正则表达式),然后检查相邻部分的成对内容以重新连接被错误地拆分的内容。 - lenz