什麼是正則表達式從以下行提取1944年的正則表達式:本學期
vol. 9, no. 3, pp. 185-197, 1944
1944年基本上是公開的,我正在試圖提取的一年。我改變數字在1900年和2010年之間
什麼是正則表達式從以下行提取1944年的正則表達式:本學期
vol. 9, no. 3, pp. 185-197, 1944
1944年基本上是公開的,我正在試圖提取的一年。我改變數字在1900年和2010年之間
如果它始終是字符串中的最後一部分,他們可能會使用$
也表明,與去年應始終爲4位數字,因此您使用d{4}
。 因此,你想要的正則表達式應爲:
\d{4}$
而且如果你想測試你的正則表達式,有一個漂亮整潔的工具在這裏:http://pagecolumn.com/tool/pregtest.htm,它也有右側所列的規則。 :)
嘗試捕捉4一起:
\d{4}
如果書中有1000頁或更多頁面? –
@ tim-cooper mate我認爲用戶只需要問一年字符串。 –
@ tim-cooper好的,現在我明白了你的意思是:'vol。 9,沒有。 3,第1850-1970頁,1944年。是的,你說得對...... –
你需要一個更好的約束,但也許這:
,\s+(19\d\d|200\d|2010)
你知道一個特定的引文風格,爲例? (MLA,APA等)
假設今年將始終是最後一個:
\d{4}$
匹配1900和2010之間的任何數字:
(19\d\d|200\d|2010)
如果日期是經常上線的最後一個項目:
(19\d\d|200\d|2010)$
如果有可能以後它的東西,但它的總是在一頁之後立即寫出:
pp?\.\s*[-\d]+,\s*(19\d\d|200\d|2010)
注意:設計正則表達式時,通常是ve對於可以測試的項目有很大的選擇很重要,所以你可以看到可能的輸入中可能會有什麼變化。一個測試項目本身通常不足以設計防彈正則表達式。
但是,如果你有類似以下內容的話,它是否會確保它不會導致頁碼? 9,沒有。 3,pp。1985-1997,1944' – Amar
在末尾添加一個'$',它將確保它。所以讓它成爲'[1-9] [0-9] {3} $'。如果你想測試你的正則表達式,這裏有一個非常簡潔的工具:http://www.pagecolumn.com/tool/pregtest.htm,它也有右側的規則。 :) – Amar