<p>使用本机Python代码的解决方案是对第一种情况使用<code>replace</code>,然后使用wordwrap。通过<code>re</code>使用regex可能效率更高,但对于任何试图理解您的代码的人来说,这都更易读。它也长得多,我不知道你是否在乎。不管怎样,我的解决方案是:</p>
<pre><code>def wordwrap(text, limit=60):
"""Just a function to wrap words to line length 60."""
words = text.split(" ")
lines_out = [words[0]]
for word in words[1:]:
last_line = lines_out[-1]
if len(last_line)+len(word) > limit:
lines_out.append(word)
else:
lines_out[-1] = last_line+" "+word
return "\n".join(lines_out)
def process(int):
"""Process your input to follow all you rules"""
# Add newlines after commas and periods
inp = inp.replace(".", ".\n").replace(",", ",\n")
lines = inp.split("\n")
lines = [l.strip() for l in lines] # Remove any spaces before lines
# Wrap remaining lines
lines = [wordwrap(l) for l in lines]
return "\n".join(lines)
# A test.
if __name__ == "__main__":
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam et nibh augue. Sed dignissim eu odio nec efficitur. Nulla aliquam imperdiet ipsum, eu mollis lacus cursus quis. Nulla dictum sem sem in auctor erat imperdiet sed suscipit elit ut lacus vestibulum vitae consequat risus volutpat. Suspendisse suscipit velit id."
print process(text)
</code></pre>