Regexp_in_Python_Aufgabe_4.py
von tegula- SNIPPET_DESC:
- Bitte Dateinamensendung ".txt" nach dem Download entfernen.
- SNIPPET_CREATION_TIME:
- 14.06.2022 19:01:38
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- #' ---
- #' title: "Lösungsversuch zum RegEXP-Kurs im Debianforum"
- #' author: "tegula"
- #' date: "12 06 2022"
- #' output: html_document
- #' ---
- #' ------------------------
- #' ------------------------
- #' **Kurs-Teil:** Python (Kurzeinstieg) - Aufgabe Nr. 4
- #' **URL:** https://debianforum.de/forum/viewtopic.php?p=1303710#p1303710
- #' ------------------------
- #' ------------------------
- """
- Aufgabe 4)
- Welche kleine Korrektur hätte für das Eingangsbeispiel genügt, damit es inhaltlich korrekt ist (kurze_woerter)?
- """
- #' ------------------------
- #' ------------------------
- # **Lösungsvorschlag (Korrekturvoschlag):** Im Regulären Ausdruck festlegen, dass die Zeichenfolge mit einer Wortgrenze beginnen und enden muss.
- #' ------------------------
- #' ------------------------
- # Gemeinsamer Teil: re-Modul importieren und Text definieren bzw. in einer Variable abspeichern
- import re
- text = "Ich weiß gar nicht, was ich alles nicht weiß, aber es ist sicher viel"
- #' ------------------------
- #' ------------------------
- # **Ursprüngliche RE ( https://debianforum.de/forum/viewtopic.php?p=1303710#p1303710 ):**
- kurze_woerter = re.findall(pattern=r"[A-Za-z]{1,4}", string=text)
- ## Ergebnis der ursprünglichen RE anzeigen
- print("=======ANWENDUNG DES URSPRÜNGLICHEN RE======")
- print(f"Eingabe: <<{text}>>")
- print(f"Anzahl der extrahierten Zeichenfolgen: {len(kurze_woerter)}")
- print("\n**Extrahiert wurden folgende Zeichenfolgen:**")
- for n,i in enumerate(kurze_woerter):
- print("Match Nr.%d) \t %s" % ((n+1),i))
- print("===========================================")
- # Korrektur bzw. Änderungsvorschlag
- kurze_woerter_veraendert = re.findall(r"\b[A-Za-z]{1,4}\b", text)
- ## Ergebnis der Änderungsvorschlags anzeigen
- print("=======ANWENDUNG DES KORREGIERTEN RE (LÖSUNGSVERSUCH) ======")
- print(f"Eingabe: <<{text}>>")
- print(f"Anzahl der extrahierten Zeichenfolgen: {len(kurze_woerter_veraendert)}")
- print("\n**Extrahiert wurden folgende Zeichenfolgen:**")
- for n,i in enumerate(kurze_woerter_veraendert):
- print("Match Nr.%d) \t %s" % ((n+1),i))
- print("============================================================")
- #' ------------------------
- #' ------------------------
- #' [ENDE]
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN