我正在嘗試使用正則表達式從引用中提取頁碼。如何使用Python和正則表達式從引文中提取頁碼?
下面是測試數據我的工作:
- 期刊名稱,卷。 20號,2號;頁。 15
- Journal Name,Vol。 20,第2號:人名(1990-2010);頁。 15
- Journal Name,Vol。 20,第2號:人名(1990-2010); 15-20
- Journal Name,Vol。 20,第2號:人名(1990-2010); pp。15-
- Journal Name,Vol。 20號,2號; 20-25
- Journal Name,Vol。 20號,2號; ISSN:1234-1234(Print); 20-25
- Journal Name,Vol。 20號,2號; 20-25; ISSN:1234-1234(Print)
- Journal Name,Vol。 20號,2號; ISSN:1234-1234(Print); ISSN:1234-1234(Online); 20-25
- Journal Name,Vol。 20號,2號; ISSN 1234-1234(平面); ISSN 1234-1234(Online); 20-25
當使用正則表達式如下:
(?![^()]*\))(\d+-\d+)
粗體上述匹配的值。
我想改善這種正則表達式不匹配「ISSN」或之後不能有任何\d+-\d+
「ISSN:」。我嘗試使用(?<![ISSN:?\s])
添加後視效果,但沒有成功。
有關如何實現該目標並僅匹配以下值的任何想法?
- 期刊名稱,卷。 20號,2號;頁。 15
- Journal Name,Vol。 20,第2號:人名(1990-2010);頁。 15
- Journal Name,Vol。 20,第2號:人名(1990-2010); 15-20
- Journal Name,Vol。 20,第2號:人名(1990-2010); pp。15-
- Journal Name,Vol。 20號,2號; 20-25
- Journal Name,Vol。 20號,2號; ISSN:1234-1234(Print); 20-25
- Journal Name,Vol。 20號,2號; 20-25; ISSN:1234-1234(Print)
- Journal Name,Vol。 20號2; ISSN:1234-1234(Print); ISSN:1234-1234(Online); 20-25
- Journal Name,Vol。 20號,2號; ISSN 1234-1234(打印); ISSN 1234-1234(在線); 20-25
'[ISSN:?\ s]'不會**按照您的想法做...嘗試類似https://regex101.com/#python,它將添加一個解釋和相當突出顯示。 – jonrsharpe
感謝您的鏈接!在正則表達式的開始我嘗試了'[ISSN:?\ s]',但那不起作用;它仍然與測試字符串中的幾個「1234-1234」匹配。 –
**閱讀說明**:'[ISSN:?\ s]'**匹配下面列表中的單個字符**:'ISSN:?'列表中的單個字符'ISN:?'直接區分大小寫)'\ s'匹配任何空格字符['\ r \ n \ t \ f'] – jonrsharpe