我正在解析維基百科文章。我想提取每一句話,其中有一年。這一年可以是1000年至2012年的任何事情。下面是我一直在嘗試的正則表達式,但我不太清楚。請幫助完善這一點。如何使用正則表達式提取多年的句子?
$regex = '/\.\s.+\s[1|2][0-9]{3}\.\s/';
我正在解析維基百科文章。我想提取每一句話,其中有一年。這一年可以是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[^.]*\.
分裂句子是一個不同的故事。
希望它能幫助:
10[0-9]{2}|200[0-9]|201[0-2]
現在,你將如何決定是1003年,而不是任意數量,這是一個不同的問題。