为什么这个正则表达式不解析整个字符串?

时间:2015-10-06 21:01:56

标签: python regex split

编写一个简单的脚本来将大型文本文件解析为单词,其父句和一些元数据(它们是否在引用中等)。试图使正则表达式正常运行并遇到一个奇怪的问题。这是一小段测试代码,显示我的解析发生了什么。白色空间是故意的,但我无法理解为什么最后一个'单词'没有解析。它之前没有任何有问题的字符(至少就我可以告诉使用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']

1 个答案:

答案 0 :(得分:4)

re.M为8,您将其作为maxsplit位置参数传递。您想要flags=re.M