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

Regex 如何用正则表达式提取其中包含年份的句子?,regex,web-scraping,Regex,Web Scraping,我正在分析维基百科的文章。我想把每一个有一年的句子都摘录出来。一年可以是从1000年到2012年的任何一年。下面是我一直在尝试的正则表达式,但我不能完全正确。请帮助改进这个 $regex = '/\.\s.+\s[1|2][0-9]{3}\.\s/'; 分句是另一回事 希望有帮助: 10[0-9]{2}|200[0-9]|201[0-2] 现在,您将如何确定1003是一年而不是任何数字,这是一个不同的问题。让我们将一个句子定义为结尾带有句号的非句点字符: [^.]+\. (当然,这有一些问

我正在分析维基百科的文章。我想把每一个有一年的句子都摘录出来。一年可以是从1000年到2012年的任何一年。下面是我一直在尝试的正则表达式,但我不能完全正确。请帮助改进这个

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

分句是另一回事

希望有帮助:

10[0-9]{2}|200[0-9]|201[0-2]

现在,您将如何确定1003是一年而不是任何数字,这是一个不同的问题。

让我们将一个句子定义为结尾带有句号的非句点字符:

[^.]+\.
(当然,这有一些问题,但对于任何自动化流程来说,这些问题都是非常重要的,所以必须这样做)。那么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[^.]*\.