Einfache Anführungszeichen durch Komma ersetzen

FatManStanding

Lt. Junior Grade
Registriert
Aug. 2021
Beiträge
391
tach,

ich habe hier aus einer PDF per OCR ein richtiges eBooks (*.epub) erstellt. die ocr-software hatte probleme bei der erkennung einfacher anführungszeichen (also ' statt ") und ich hab das danach durch search&replace weiter verschlimmert: jetzt sind alle kommas einfache anführungszeichen. ich kann aber nicht einfach alle ' durch , ersetzen, weil hier tatsächlich oft einfache anführungszeichen verwendet werden, d.h. an vielen stellen sind die korrekt.

ich versuche nun so viele kommas wie möglich wiederhzustellen. ich kann damit

Code:
(<p>.*?[a-z^'])'

jedes einfache anführungszeichen das nach einem kleinbuchstaben kommt anzeigen lassen. <p> ist dabei einfach der beginn des absatzes und

Code:
.*?

der faule ausdruck für "alles". ohne das ? würde er immer das letzte anführungszeichen des absatzes findet statt des ersten. probolem: zu "allem" gehört auch der ausdruck

Code:
'[A-Za-z]

also anführungszeichen vor einem wort und demnach die "richtigen" anführungszeichen die bleiben sollen. ich müsste also den ausdruck oben abändern, dass er jedes zeichen zwischen <p> und [a-z]' findet außer '[A-Za-z].
 
Wenn ich es richtig verstanden habe:
Eine Funktion, die jedes einfache Anführungszeichen durch ein Komma ersetzt, wenn es nicht von einem Großbuchstaben oder einem Leerzeichen gefolgt wird:

Wichtig! Ich bin kein Programmierer! Das ist eine Laien-Lösung:

Python:
def convert_quotes_to_commas(text):
    result = ""
    for i in range(len(text)):
        if text[i] == "'" and (i == 0 or text[i-1] not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ "):
            result += ","
        else:
            result += text[i]
    return result
 
ich meinen einen regulären ausdruck, hatte ich vergessen zu schrieben. icg mach das in einem editor.

der ausdruck soll alles finden zwischen einem <p> und [a-z]' (also kleinbuchstabe gefolgt von einfachen anführungszeichen) - außer eben der zeichenfolge '[A-Za-z] (also einfaches anführungszeichen gefolgt von groß- oder kleinbuchstabe).
 
FatManStanding schrieb:
ich habe hier aus einer PDF per OCR ein richtiges eBooks (*.epub) erstellt
[..]
ich hab das danach durch search&replace weiter verschlimmert: jetzt sind alle kommas einfache anführungszeichen. ich kann aber nicht einfach alle ' durch , ersetzen, weil hier tatsächlich oft einfache anführungszeichen verwendet werden, d.h. an vielen stellen sind die korrekt.

ich versuche nun so viele kommas wie möglich wiederhzustellen
Ernst gemeinte Frage: Warum fängst du nicht von vorne an und erstellst das epub einfach neu, um anschließend ohne deinen Search&Replace Fehler nur die richtigen Anführungszeichen zu ersetzen? Ich halte es für wenig sinnvoll, dein verschlimmbessertes Resultat nun womöglich noch weiter zu verschlimmbessern, weil du ggfs wieder Spezialfälle hast, die nochmal anders aussehen. Stattdessen nochmal auf Anfang und den ursprünglichen Fehler einfach nicht wiederholen ;)
 
  • Gefällt mir
Reaktionen: aronlad, WhiteHelix, 00Julius und eine weitere Person
Weil das nicht die einzigen Anpassungen si d die ich schon gemacht habe.

Es ging dann gut mit dem leerzeichen, auf die Idee bin ich von selber nicht gekommen.
 
Zurück
Oben