lehrkraefte:blc:informatik:efi-2023:regex

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:efi-2023:regex [2023/12/05 08:15]
Ivo Blöchliger
lehrkraefte:blc:informatik:efi-2023:regex [2023/12/14 09:25] (current)
Ivo Blöchliger [Ausprobieren]
Line 35: Line 35:
   * https://regex101.com/ Verwenden Sie Python. Die Dokumentation von Python RegEx: https://docs.python.org/3/library/re.html   * https://regex101.com/ Verwenden Sie Python. Die Dokumentation von Python RegEx: https://docs.python.org/3/library/re.html
  
 +  * http://regextutorials.com/
 +  * https://regexcrossword.com/
 +  * https://alf.nu/RegexGolf  (Yay!)
 +  * https://regexone.com/
 +  * https://regex.sketchengine.eu/basic-exercises.html
 ==== Aufgabe: Links extrahieren ==== ==== Aufgabe: Links extrahieren ====
   * Extrahieren Sie alle Links von folgendem Code-Schnipsel:   * Extrahieren Sie alle Links von folgendem Code-Schnipsel:
Line 68: Line 73:
 </hidden> </hidden>
  
 +==== Realworld-Aufgabe: Christbaum-Logdaten analysieren ====
 +Kopieren Sie die log-Datei vom Christbaum und analysieren Sie diese.
 +<code bash>
 +scp ef:python/logs/xmaslights-2023-11-30T164809.401678.log .
 +</code>
 +Mögliche Fragen:
 +  * Welches Programm wurde besonders oft ausgewählt?
 +  * Um welche Uhrzeiten hat der Bewegungsmelder etwas wahrgenommen? Plotten Sie das auch schön.
 +
 +
 +<code python>
 +import re
 +
 +fn = "xmaslights-2023-11-30T164809.401678.log"
 +
 +with open(fn, "r") as f:
 +    lines = f.readlines()
 +
 +pattern = re.compile("since motion: (\d+\.\d+)")
 +#pattern = re.compile("text=")
 +
 +for line in lines:
 +    res = pattern.search(line)
 +    if res:
 +        #print(line)
 +        print(res.group(1))
 +</code>
 ==== Realworld-Aufgabe: Daten aus einer Nesa-Seite extrahieren ==== ==== Realworld-Aufgabe: Daten aus einer Nesa-Seite extrahieren ====
 Hier finden Sie einen Screenshot und den zughörigen HTML-Code: {{lehrkraefte:blc:informatik:efi-2023:raumplanh21.zip}}. Hier finden Sie einen Screenshot und den zughörigen HTML-Code: {{lehrkraefte:blc:informatik:efi-2023:raumplanh21.zip}}.
Line 76: Line 108:
 Gegen eine UI zu programmieren, ist ok für den Einmalgebrauch. Es ist aber nicht nachhaltig, weil die UI jederzeit ändern kann (und wird!).  Gegen eine UI zu programmieren, ist ok für den Einmalgebrauch. Es ist aber nicht nachhaltig, weil die UI jederzeit ändern kann (und wird!). 
  
-Auch haben wir HTML-Code vorliegen. Dieser ist bereits strukturiert und auch danach durchsuchbar. Z.B. kann man die Sache in JavaScript «relativ» einfach erledigen (In den Entwickler Tools):+Auch haben wir HTML-Code vorliegen. Dieser ist bereits strukturiert und auch danach durchsuchbar. Z.B. kann man die Sache in JavaScript «relativ» einfach erledigen (In den Entwickler Tools des Webbrowsers (F12)):
 <code javascript> <code javascript>
 Array.from(document.querySelectorAll('.stpt_event_body')).map(e=>e.getAttribute('title')) Array.from(document.querySelectorAll('.stpt_event_body')).map(e=>e.getAttribute('title'))
  • lehrkraefte/blc/informatik/efi-2023/regex.1701760506.txt.gz
  • Last modified: 2023/12/05 08:15
  • by Ivo Blöchliger