编写一个简单的脚本来将大型文本文件解析为单词,其父句和一些元数据(它们是否在引用中等)。试图使正则表达式正常运行并遇到一个奇怪的问题。这是一小段测试代码,显示我的解析发生了什么。白色空间是故意的,但我无法理解为什么最后一个'单词'没有解析。它之前没有任何有问题的字符(至少就我可以告诉使用repr而言),当我在问题'word'上运行parse()时,它会返回预期的单个单词和空格数组。
代码:
def parse(new_line):
new_line = new_line.rstrip()
word_array = re.split('([\.\?\!\ ])',new_line,re.M)
print(word_array)
x = full_text.readline()
print(repr(x))
parse(x)
输出:
'Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy\n'
['Far', ' ', 'out', ' ', 'in', ' ', 'the', ' ', 'uncharted', ' ', 'backwaters', ' ', 'of', ' ', 'the', ' ', 'unfashionable end of the western spiral arm of the Galaxy']
答案 0 :(得分:4)
re.M
为8,您将其作为maxsplit
位置参数传递。您想要flags=re.M
。