猿问

两个可选模式之间的正则表达式 findall,如果没有则返回全部

我有许多新闻文章,其中一些有介绍和结尾陈述。可能的组合是...

  • 一些关于新闻故事的文字。

  • BBC 报道: 一些关于新闻故事的文字。在 BBC.com 上阅读更多内容。

  • BBC 报道: 一些关于新闻故事的文字。

  • 一些关于新闻故事的文字。在 BBC.com 上阅读更多内容。

我想要做的是返回“关于新闻故事的一些文本”。在每种情况下。我有下面的正则表达式,它返回第一个和第二个示例。当有介绍或结束语句时,我很挣扎。

re.search(r'(?i)(?<=: ).*(?=Read more|Full story|\. Source)', str(doc)).group()


# "(?i)" to ignore case.

# "(?<=: )" to capture text after and excluding ": "

# ".*" match everything between the two patterns. 

# "(?=Read more|Full story|\. Source)" match everything before these three strings. 


牧羊人nacy
浏览 159回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答