我想把一个字符串分成多个部分,这样每一行至少包含12个字符,但也要在,
上断行。我使用re.match()
来处理regex (.{12}[^,]*, )
,它工作得很好,只是我在字符串的末尾没有不匹配的片段。我怎样才能得到这件作品呢
举个例子,输入字符串:
1 2 3 4 5 6 7 8 9 0, 1 2 3 4 5, 1 2 3, 1 2 3 4 5 6 7 8 9 0 1 2, 1, 2
应分为以下几组:
1 2 3 4 5 6 7 8 9 0,
1 2 3 4 5, 1 2 3,
1 2 3 4 5 6 7 8 9 0 1 2,
1, 2
上面的正则表达式提供了除最后一个组以外的所有组。带有样本数据的正则表达式的在线版本可用here
一种选择是使用
re.findall
:.{12}[^,]*,
正则表达式的主要问题是,它需要正好12个任意字符,然后是0个或更多字符(逗号除外),直到最接近的逗号和空格,而您需要在末尾将1到12个任意字符与可选的逗号+空格匹配以下是正则表达式:
见regex demo
IDEONE demo:
结果:
['1 2 3 4 5 6 7 8 9 0, ', '1 2 3 4 5, 1 2 3, ', '1 2 3 4 5 6 7 8 9 0 1 2, ', '1, 2']
相关问题 更多 >
编程相关推荐