我正在解析维基百科的文章。我想提取一年中的每一句话。这一年可以是1000年至2012年的任何一年。以下是我一直在尝试的正则表达式,但我不能完全正确。请帮助改进这一点。
$regex = '/\.\s.+\s[1|2][0-9]{3}\.\s/';
答案 0 :(得分:2)
让我们将一个句子定义为一系列非句号字符,并在结尾处设置一个句号:
[^.]+\.
(当然,这有一些问题,但是对于任何自动化过程来说,它们都是非常重要的,因此必须这样做)。然后是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[^.]*\.
答案 1 :(得分:0)
分裂句子是另一回事。
希望有所帮助:
10[0-9]{2}|200[0-9]|201[0-2]
现在,你如何判断1003是一年而不是任何数字,这是一个不同的问题。