Python 需要正则表达式帮助识别句子

Python 需要正则表达式帮助识别句子,python,regex,Python,Regex,我有这样一个文本: “标记 无论什么句子 任何句子2 Matt 任何句子3 任何句子4 卡罗尔 任何句子5 任何句子6” 我希望能够识别每个句子(然后列出每个句子)。我怎样才能简单地做到这一点 马克、马特和卡罗尔是否被识别并随后被添加到列表中并不重要,因为这些名字总是相同的,但句子可能不同 我试过一点,但我不知道如何处理空行 任何帮助都将不胜感激,即使只是一个指向正确方向的指针。如果所有句子都以换行符结尾,您可以使用以下(非常简单)正则表达式: /([^\n]+)/ 提示:您可以使用来测试正则

我有这样一个文本:

“标记

无论什么句子
任何句子2

Matt

任何句子3
任何句子4

卡罗尔

任何句子5
任何句子6”

我希望能够识别每个句子(然后列出每个句子)。我怎样才能简单地做到这一点

马克、马特和卡罗尔是否被识别并随后被添加到列表中并不重要,因为这些名字总是相同的,但句子可能不同

我试过一点,但我不知道如何处理空行


任何帮助都将不胜感激,即使只是一个指向正确方向的指针。

如果所有句子都以换行符结尾,您可以使用以下(非常简单)正则表达式:

/([^\n]+)/

提示:您可以使用来测试正则表达式。

在Python中,您不需要正则表达式

只需使用:

< >所有的空白行:

>>> sentences = list(filter(None, sentences))
>>> sentences
['Mark', 'Whatever sentence', 'Whatever sentence 2', 'Matt', 'Whatever sentence 3', 'Whatever sentence 4', 'Carol', 'Whatever sentence 5', 'Whatever sentence 6']
如果“列出每个句子”,您的意思是将每个句子分成几个单词,您可以这样做:

>>> sentences = [sentence.split() for sentence in sentences]
>>> sentences
[['Mark'], ['Whatever', 'sentence'], ['Whatever', 'sentence', '2'], ['Matt'], ['Whatever', 'sentence', '3'], ['Whatever', 'sentence', '4'], ['Carol'], ['Whatever', 'sentence', '5'], ['Whatever', 'sentence', '6']]

你如何区分一个句子和一个名字?你能给出一个更具体的例子和你的预期输出(匹配项)吗?你到底已经试过什么了?@slhck OP没有(我想)。“马克、马特和卡罗尔的身份是否确定并不重要”;)我本想得到一些答案,但不是这么快,绝对不是这么棒!谢谢,老兄,我会试试的!答案我马上就要发布了!您应该使用
list(filter(…)
)精确地指出,代码是Python 3中的,不是吗?@user3024863然后您应该单击seeneyrod答案左侧“upvote button-points-downvote button”系列下的“括号”来接受it@eyquem是的,我用Python 3.3进行了测试,但我认为在这种情况下,它与Python2.7没有任何区别。在Python2中,
list(filter(…)
可以工作,但它是多余的,因为
filter()
在参数是列表时返回列表谢谢,如果需要,我会使用它。我还不确定我会走哪条路,但这可能会在以后派上用场。
>>> sentences = [sentence.split() for sentence in sentences]
>>> sentences
[['Mark'], ['Whatever', 'sentence'], ['Whatever', 'sentence', '2'], ['Matt'], ['Whatever', 'sentence', '3'], ['Whatever', 'sentence', '4'], ['Carol'], ['Whatever', 'sentence', '5'], ['Whatever', 'sentence', '6']]