使用Python每64个字符插入一个换行符
我想用Python在一个字符串每64个字符后插入一个换行符。在Perl里,这个操作很简单:
s/(.{64})/$1\n/
那么在Python中,怎么用正则表达式来实现呢?有没有更符合Python风格的方法呢?
7 个回答
21
我会选择:
import textwrap
s = "0123456789"*100
print('\n'.join(textwrap.wrap(s, 64)))
37
没有使用正则表达式:
def insert_newlines(string, every=64):
lines = []
for i in range(0, len(string), every):
lines.append(string[i:i+every])
return '\n'.join(lines)
这个写法更简短,但我觉得不太容易读懂:
def insert_newlines(string, every=64):
return '\n'.join(string[i:i+every] for i in range(0, len(string), every))
(对于Python 2,使用 xrange
替代 range
。)
39
和Perl一样,不过用反斜杠代替美元符号来访问分组:
s = "0123456789"*100 # test string
import re
print re.sub("(.{64})", "\\1\n", s, 0, re.DOTALL)
re.DOTALL
相当于Perl中的 s/
选项。