所以我有一些句子:
The window is over there. The lamp is on. The fire is burning.
当我使用split('。')拆分它然后将其与换行符连接时,它会丢失“。”
然后我尝试了像(?<=\.)\s
这样的正则表达式,但它在第二个和第三个字母的第一个字母之前产生了一个空格:
The window is over there.
The lamp is on.
The fire is burning.
我不想要额外的空间。我想要:
The window is over there.
The lamp is on.
The fire is burning.
由于
答案 0 :(得分:3)
>>> test = "The window is over there. The lamp is on. The fire is burning."
>>> print test.replace(". ",".\n")
The window is over there.
The lamp is on.
The fire is burning.
答案 1 :(得分:3)
".\n".join(i.strip() for i in a.split("."))
答案 2 :(得分:1)
显然不处理特殊情况(即一段时间后没有空格),为什么不这样做呢:
>>> s = 'The window is over there. The lamp is on. The fire is burning.'
>>> print s.replace('. ', '.\n')
The window is over there.
The lamp is on.
The fire is burning.
答案 3 :(得分:1)
有多种方法可以处理拆分输入:拆分后剥离,使用正则表达式拆分或使用简单搜索。
第一个选项可能是最直观的:你将字符串分割成一个像你已经做的那样,然后剥离结果字符串以删除任何空格并恢复尾随点。在Python中:
sentences = input.split('.')
sentences = [s.strip() + '.' for s in sentences if s]
print sentences.join('\n')
第二种更简单的方法是简单地替换'。 'with'。\ n':
print input.replace('. ', '.\n')
这将适用于您的输入,但如果有人使用两个空格来分隔句子(某些人更喜欢),则会失败。
最后也是最灵活的方法是使用正则表达式来分割点和空格的组合:
import re
sentences = re.split('(?<=\.)\s*', input)
print sentences.join('\n')
注意与正则表达式的重要区别:我使用\ s *来消耗所有可能的空格。这在有两个或更多空格的情况下很重要,或者根本没有空格。