2025-07-01 20:57:56 +02:00

1.7 KiB

Reguläre Ausdrücke (Regex)

Sonderzeichen (*+?{}[]\|()) mit \ escapen.

  • Platzhalter: . (Zeichen), \d (Ziffer), \w (Buchstabe/Ziffer), \s (Whitespace). Großbuchstaben (\D, \W, \S) negieren die Auswahl.
  • Auswahl: [...] (Zeichenmenge), [^...] (negierte Menge), [a-z] (Bereich).
  • Wiederholung: * (0+), + (1+), ? (0-1), {n,m} (Anzahl). *? für non-greedy.
  • Logik & Gruppen: () (Gruppe), (?P<n>...) (benannte Gruppe), | (ODER).
  • Position: ^ (Anfang), $ (Ende), \b (Wortgrenze). Beispiel:
^(?P<timestamp>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})\s\[(?P<level>INFO|WARN|ERROR)\]\s\(user:\s'(?P<user>[\w\.-]+@[\w\.-]+)'\)\s"(?P<message>.*?)"$

XPath & JSONPath

  • XPath (XML): Navigation mit / (Kind), // (Nachfahre), . (aktuell), .. (Eltern). Filtern mit [...], z.B. [@id='x'] (Attribut) oder [1] (Position). Werte mit @attribut oder text().
  • JSONPath (JSON): Start mit $. Navigation mit . oder ['key']. .. (rekursiv), [*] (alle Array-Elemente). Filtern mit [?(@...)], wobei @ das aktuelle Element ist. Beispiel:
//course[@id='cds104']/lecturer[@type='external' and units > 5]/name/text()
$.movies[?(@.year > 1999 && @.title =~ /^Matrix.*/)].actors[*].name

HTTP-APIs & Web Crawling

  • HTTP-APIs: Datenaustausch über URLs via REST (Methoden: GET, POST, etc.), oft mit API-Key zur Authentifizierung.
  • Web Scraping/Crawling: Extrahiert Daten aus HTML. Auswahl mit CSS-Selektoren (z.B. tag, .klasse, #id). Crawler folgen Links (<a>). Beachte robots.txt und nutze sitemap.xml.
main#content article.published:not(.featured) h2 + div.meta a[href*="author"]