我的问题与此类似one , 但有一些修改。首先我需要使用 python 和正则表达式。我的字符串是:“四分和七年前。”我想每隔 6 个字符将它拆分一次,但如果字符不除以 6,我还想在最后返回空格。
我希望能够输入:'四分和七年前。'
理想情况下,它应该输出:['Four s', 'core a', 'nd sev', 'en yea', 'rs ago', '. ']
我能得到的最接近的是这种尝试,它忽略了我的句点并且没有给我空格
re.findall('.{%s}'%6,'Four score and seven years ago.') #split into strings
['Four s', 'core a', 'nd sev', 'en yea', 'rs ago']
最佳答案
无需正则表达式,这很容易做到:
>>> s = 'Four score and seven years ago.'
>>> ss = s + 5*' '; [ss[i:i+6] for i in range(0, len(s) - 1, 6)]
['Four s', 'core a', 'nd sev', 'en yea', 'rs ago', '. ']
这会在您要求的末尾提供空格。
或者,如果您必须使用正则表达式:
>>> import re
>>> re.findall('.{6}', ss)
['Four s', 'core a', 'nd sev', 'en yea', 'rs ago', '. ']
这两种情况的关键是创建字符串 ss
,它在末尾有足够的空格。
关于python - 贪婪的正则表达式每第 n 行拆分 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33978569/