NoPaste

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:
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. #' ---
  5. #' title: "Lösungsversuch zum RegEXP-Kurs im Debianforum"
  6. #' author: "tegula"
  7. #' date: "12 06 2022"
  8. #' output: html_document
  9. #' ---
  10.  
  11. #' ------------------------
  12. #' ------------------------
  13.  
  14. #' **Kurs-Teil:** Python (Kurzeinstieg) - Aufgabe Nr. 4
  15. #' **URL:** https://debianforum.de/forum/viewtopic.php?p=1303710#p1303710
  16.  
  17. #' ------------------------
  18. #' ------------------------
  19.  
  20.  
  21. """
  22. Aufgabe 4)
  23.  
  24. Welche kleine Korrektur hätte für das Eingangsbeispiel genügt, damit es inhaltlich korrekt ist (kurze_woerter)?
  25. """
  26.  
  27. #' ------------------------
  28. #' ------------------------
  29.  
  30. # **Lösungsvorschlag (Korrekturvoschlag):** Im Regulären Ausdruck festlegen, dass die Zeichenfolge mit einer Wortgrenze beginnen und enden muss.
  31.  
  32. #' ------------------------
  33. #' ------------------------
  34.  
  35. # Gemeinsamer Teil: re-Modul importieren und Text definieren bzw. in einer Variable abspeichern
  36. import re
  37. text = "Ich weiß gar nicht, was ich alles nicht weiß, aber es ist sicher viel"
  38.  
  39. #' ------------------------
  40. #' ------------------------
  41.  
  42. # **Ursprüngliche RE ( https://debianforum.de/forum/viewtopic.php?p=1303710#p1303710 ):**
  43.  
  44. kurze_woerter = re.findall(pattern=r"[A-Za-z]{1,4}", string=text)
  45. ## Ergebnis der ursprünglichen RE anzeigen
  46. print("=======ANWENDUNG DES URSPRÜNGLICHEN RE======")
  47. print(f"Eingabe: <<{text}>>")
  48. print(f"Anzahl der extrahierten Zeichenfolgen: {len(kurze_woerter)}")
  49. print("\n**Extrahiert wurden folgende Zeichenfolgen:**")
  50. for n,i in enumerate(kurze_woerter):
  51.     print("Match Nr.%d) \t %s" % ((n+1),i))
  52. print("===========================================")
  53.  
  54.        
  55. # Korrektur bzw. Änderungsvorschlag
  56. kurze_woerter_veraendert = re.findall(r"\b[A-Za-z]{1,4}\b", text)
  57. ## Ergebnis der Änderungsvorschlags anzeigen
  58. print("=======ANWENDUNG DES KORREGIERTEN RE (LÖSUNGSVERSUCH) ======")
  59. print(f"Eingabe: <<{text}>>")
  60. print(f"Anzahl der extrahierten Zeichenfolgen: {len(kurze_woerter_veraendert)}")
  61. print("\n**Extrahiert wurden folgende Zeichenfolgen:**")
  62. for n,i in enumerate(kurze_woerter_veraendert):
  63.     print("Match Nr.%d) \t %s" % ((n+1),i))
  64. print("============================================================")
  65.  
  66.  
  67. #' ------------------------
  68. #' ------------------------
  69.  
  70. #' [ENDE]
  71.  

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN