2017-06-02 6 views
-1

Ich habe OCR auf einige Bilder gemacht, die Teil eines anderen Dokumente sind und sie haben Seitenzahlen in der Unterseite. Ich habe einen Weg gefunden, um jedes Dokument zu finden, aber die Bilder sind nicht in Reihenfolge und ich möchte sie sortieren ihre Seitenzahlen. Ein Schluckauf ist, dass es Unterschiede in den Formaten der Seitenzahlen d.hWie finde ich Seitenzahlen aus dem Text?

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

Plus die Page in Klein page auch sein kann. Nach was ich suche, ist eine generische Methode, die regex verwendet, um dieses von den Seiten zu extrahieren. Es wird großartig sein, wenn es in einer Regex gehandhabt werden kann, da die kompilierte Version schneller ist als andere für jeden Fall. Dank

Antwort

1

Versuchen mit folgenden regex,

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

Use 'I' Flag für Groß- und Kleinschreibung.

RegexDemo

+0

es funktioniert gute Kumpel. Aber es gibt wenige Fälle, die nicht behandelt und identifiziert werden. dh. "Seite 35 6663 24", "Seite 34 o", "Seite o f 2" –

+0

Versuchen Sie es hier https://regex101.com/r/TEc4Hx/4 –

+0

ja ich tat. was ich sage ist, dass diese nicht extrahiert werden sollten. einzelne Nummer Seitennummern haben keinen Platz danach. wie in "Seite 35 6663 24" sollte dies "Seite 35" extrahiert haben, und zwei Zahlenseitenzahlen, d. "Seite o f 2" sollte zuerst nach Nummer suchen. –

0

Bitte sehen, ob die folgenden Befehle für Sie purpouse geeignet ist. Danke

>>> 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' 
`