2017-06-02 21 views
-1

我一直在做一些圖像上的OCR,這些圖像是不同文檔的一部分,他們在底部有頁碼。我已經想出了一種方法來查找每個文檔,但圖像不是按順序排列的,我想按照他們的頁碼。一個打嗝是,有在頁碼的格式變化即如何從文本中查找/提取頁碼?

  • Page 1 of 35
  • Page 1-35
  • Page 35

加上Page可以在小寫page也。我正在尋找的是使用正則表達式從頁面中提取此類的通用方法。如果可以在一個正則表達式中處理它將會很好,因爲編譯後的版本比每個案例的版本更快。 感謝

回答

1

下面的正則表達式嘗試,

page\s[\d]?[\s\d\-of]+ 

使用 'I' 標誌不區分大小寫。

RegexDemo

+0

它工作的好伴侶。但很少有沒有處理和確定的案件。即「第35頁6663 24」,「第34頁o」,「第2頁」 –

+0

請嘗試https://regex101.com/r/TEc4Hx/4 –

+0

是的,我做到了。我說的是這些不應該被提取。單號頁碼在它之後不會有空間。如「第35頁6663 24」中所述,本應提取「第35頁」和兩個數字頁碼,即。 「page o f 2」應該先查找數字。 –

0

請看看下面的命令是適合你purpouse。謝謝

>>> re.findall(r'\w*\s\w*\d{1,5}','Page 1-35') 
['Page 1'] 
>>> re.findall(r'\w*\s\w*\d{1,5}','Page 35') 
['Page 35'] 
>>> re.findall(r'\w*\s\w*\d{1,5}','Page 1 of 35')[0] 
'Page 1' 
>>> re.findall(r'\w*\s\w*\d{1,5}','page 1 of 35')[0] 
'page 1' 
`