【发布时间】:2017-05-15 06:30:25
【问题描述】:
我想要一个 Python 中的正则表达式,它提取一个或多个以大写字母开头的单词,除非该单词出现在第一个单词中。我知道这不是一种稳健且一致的方法,但它会解决我的问题,因为我不想使用任何统计方法(例如,在 NLTK 或 StanfordNER 中)。
示例:
extract('His name is John Wayne.')
应该返回 ['John Wayne']。
extract('He is The President of Neverland.')
应该返回 ['The President', 'Neverland'] 因为它们是大写的单词并且它们不会出现在句子的开头。
另一个例子:
extract('He came home. Although late, it was nice to have Patrick there.')
应该返回 ['Patrick'] 因为 'He' 和 'Although' 出现在句子的开头。
它还可以删除标点符号,例如“他是约翰,谁来了”应该返回“约翰”而不是“约翰”。
【问题讨论】:
-
那么,你只需要
DoefromJohn Doe arrived late? -
句子的定义是什么?
-
句子分隔符是文本的开头或点+空格之后。
-
这很好用。如果您将其作为答案(并且如果您可以解释不同部分的工作原理),我可以接受答案。谢谢。
标签: python regex regex-lookarounds