03-15-2017, 02:14 AM | #1 |
Junior Member
Posts: 6
Karma: 2480
Join Date: May 2015
Device: none
|
Rechenfunktion mit RegEx
Hallo Freunde,
ich brauche eure Hilfe: Ich bearbeite mit dem Sigil-Editor ein epub mit ca. 3000 Fußnoten. Die Fußnoten-Nummer muß ich umsetzen, dabei muß zur gefundenen Fußnote z.B. immer 47 addiert werden. Also aus 212 + 47 = 253. Hier das vereinfachte Beispiel: Suche: (<sup>)(\d+)(</sup>) Ersetze: <a href="Anm.xhtml#\2+47"><sup id="n\2+47">[\2+47]</sup></a> Ergebnis: <a href="Anm.xhtml#253"><sup id="n253">[253]</sup></a> Mit RegEx ist das nicht möglich, allerdings bin ich im Netz auf die Option: Function Mode for Search & Replace in the Editor des neuen internen Calibre-Editors gestoßen. Hier kann ein RegEx-Begriff durch eine Funktion erweitert werden unter Verwendung von Python. Da ich nie mit Python programmiert habe und mit 72 Jahren warscheinlich auch nicht mehr die Zeit habe um es zu erlernen, bitte ich euch, mir bei der Lösung meines Problems zu helfen. MfG Andreas Die Lösung: Simple math for Regex The following Regex-Function will add 47 to any number between <sup> and </sup>. You can then use normal Regex to make any other changes that you desire. In the Find box put "<sup>(\d+)</sup>" without the quotes. In the Function box put "Add numbers" again without the quotes. The code required for "Add numbers" is as follows: import regex from calibre import replace_entities from calibre import prepare_string_for_xml def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs): return ('<sup>' + str(47 + int(match.group(1))) + '</sup>') MfG Andreas Last edited by calibre-ak-4711; 03-17-2017 at 05:59 AM. |
03-17-2017, 05:36 PM | #2 |
Guru
Posts: 743
Karma: 619508
Join Date: Sep 2013
Device: EnergySistemEreaderPro, Nook STG, Pocketbook 622, Bookeen Cybooks ...
|
Sehr interessant, danke fürs Teilen.
|
Advert | |
|
04-12-2017, 03:48 AM | #3 |
eBook-Reader-Fan
Posts: 175
Karma: 444178
Join Date: Sep 2012
Location: Saarbruecken / DE
Device: Kobo Aura H2O 2nd Edition
|
Dass man mit RegEx rechnen kann, wusste ich bisher ebenfalls nicht. Habe mir die Lösung gleich mal in meinem Notizbuch abgespeichert.
Danke schön für die Info. |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Rechenfunktion mit RegEx | calibre-ak-4711 | Editor | 5 | 03-15-2017 05:44 PM |
Regex help please | FrostWolf | Library Management | 2 | 09-23-2014 11:50 PM |
Regex? | weberr | Editor | 3 | 05-12-2014 09:06 PM |
Sync mit Handy etc. auch mit Nicht-Amazon-Büchern möglich! | Wurstbrot | Amazon Kindle | 14 | 03-28-2012 09:29 AM |
360 mit 15.3: Ansicht der ganzen Seite mit Zoom-Rahmen | mh445 | PocketBook | 0 | 01-03-2011 04:53 PM |