Blacktron
Enthusiast
Hallo,
folgendes Problem: Ich habe einen Text und möchte ihn in einzelne Wörter aufsplitten. Soweit noch kein Problem. Problematisch wirds aber, weil evtl. Fehler in der Groß-/Kleinschreibung korrigiert werden soll. Sprich, es soll überprüft werden ob nach einem Punkt auch wieder ein Großbuchstabe kommt. Soweit auch noch kein Problem. Aber jetzt wirds problematisch: Im Text sind auch Abkürzungen enthalten, die mit einem Punkt enden. Deshalb brauche ich eine RegEx die diese Abkürzungen enthält. Abkürzungen sind für mich erstmal eine folge von höchstens 2 Buchstaben ("z.B.", "s.u." und so weiter) ODER eine beliebig lange Zeichenkette die keine Vokale enthält ("ggf."). Dass da evtl einiges "hinten rüber fällt" ("etc.", "usw.") soll jetzt nicht berücksichtigt werden.
Mein bisheriger Versuch sah in etwa so aus: [ ][a-zA-Z]{1,2}[.]{1} Das findet zwar alles was ein Leerzeichen ist und dann ein oder zwei Buchstaben und zum Schluss ein Punkt. Aber das Kriterium mit dem "oder keine Vokale" bekomme ich da irgendwie nicht mit rein.
Hat da jemand einen Tipp?
Ein weiteres kleines Problem: Nach Satzzeichen (")" ,",", "." usw.) soll ein Leerzeichen eingefügt werden. Auch hier finde ich die Zeichen ganz einfach mit [\.\)\?\;...], aber wie ersetze ich das jetzt in Python? Also alle diese Zeichen mit einem anderem ersetzen ist ja kein Thema (alle Satzzeichen z.B. durch _ ersetzen), aber die Ersetzung muss ja in Abhängigkeit von dem gefundenem Zeichen erfolgen.
Für Hilfe wäre ich sehr dankbar.
Viele Grüße!
folgendes Problem: Ich habe einen Text und möchte ihn in einzelne Wörter aufsplitten. Soweit noch kein Problem. Problematisch wirds aber, weil evtl. Fehler in der Groß-/Kleinschreibung korrigiert werden soll. Sprich, es soll überprüft werden ob nach einem Punkt auch wieder ein Großbuchstabe kommt. Soweit auch noch kein Problem. Aber jetzt wirds problematisch: Im Text sind auch Abkürzungen enthalten, die mit einem Punkt enden. Deshalb brauche ich eine RegEx die diese Abkürzungen enthält. Abkürzungen sind für mich erstmal eine folge von höchstens 2 Buchstaben ("z.B.", "s.u." und so weiter) ODER eine beliebig lange Zeichenkette die keine Vokale enthält ("ggf."). Dass da evtl einiges "hinten rüber fällt" ("etc.", "usw.") soll jetzt nicht berücksichtigt werden.
Mein bisheriger Versuch sah in etwa so aus: [ ][a-zA-Z]{1,2}[.]{1} Das findet zwar alles was ein Leerzeichen ist und dann ein oder zwei Buchstaben und zum Schluss ein Punkt. Aber das Kriterium mit dem "oder keine Vokale" bekomme ich da irgendwie nicht mit rein.
Hat da jemand einen Tipp?
Ein weiteres kleines Problem: Nach Satzzeichen (")" ,",", "." usw.) soll ein Leerzeichen eingefügt werden. Auch hier finde ich die Zeichen ganz einfach mit [\.\)\?\;...], aber wie ersetze ich das jetzt in Python? Also alle diese Zeichen mit einem anderem ersetzen ist ja kein Thema (alle Satzzeichen z.B. durch _ ersetzen), aber die Ersetzung muss ja in Abhängigkeit von dem gefundenem Zeichen erfolgen.
Für Hilfe wäre ich sehr dankbar.
Viele Grüße!