regex - 如何使用正则表达式提取其中包含年份的句子?

标签 regex web-scraping

我正在解析维基百科文章。我想提取其中包含一年的每个句子。年份可以是 1000 - 2012 之间的任何值。下面是我一直在尝试的正则表达式,但我不太正确。请帮助完善这一点。

$regex = '/\.\s.+\s[1|2][0-9]{3}\.\s/';

最佳答案

让我们将一个句子定义为一连串非句点字符,末尾有一个句号:

[^.]+\.

(这当然有一些问题,但它们对于任何自动化流程来说都不是小事,因此必须这样做)。那么 1000 到 2012 之间的数字将是

\b(1[0-9]{3}|200[0-9]|201[0-2])\b

合并它们:

[^.]*\b(1[0-9]{3}|200[0-9]|201[0-2])\b[^.]*\.

关于regex - 如何使用正则表达式提取其中包含年份的句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8893552/

相关文章:

html - 在 HTML 文件中查找特定标签

node.js - puppeteer 中的页面 cookie 不适用于保持登录

python - 在更改下拉列表中的选项时从 URL 不变的站点抓取数据

python - 这个 xPath 没有给出任何结果,有什么原因吗?

c# - 使用正则表达式替换

javascript - 创建正则表达式来匹配大数字

javascript - 抓取javascript网站

python - 抓取特定网站上的问题

java - 如何在java中的正则表达式模式末尾分割字符串

javascript - 具有lookbehind 和lookahead 的Lookbehind 替代方案