kurse:ef05a-2021:regex

This is an old revision of the document!


Regular Expressions

Beschreibung von Text-Mustern. Zum Suchen, Extrahieren und Ersetzen von Text. Gibt es in (fast) allen Programmiersprachen und jedem besseren Text-Editor (z.B. Notepad++, VisualCode, vim, etc.)

Je nach Implementation gibt es kleine Unterschiede zwischen Programmiersprachen oder Text-Editoren.

Wenn nicht speziell, steht ein Zeichen für sich selbst in einer regular Expression. Z.B. matcht /hallo/ nur genau “hallo”

  • . steht für genau ein beliebiges Zeichen
  • \. steht für einen Punkt
  • [abc246] steht für genau ein beliebiges Zeichen in der Klammer
  • [5-9e-k] steht für genau ein Zeichen '5' bis '9' oder 'e' bis 'k'
  • \d Digit, Abkürzung für [0-9].
  • \[ steht für die öffnende Klammer

Quantoren:

  • * beliebig viele der Expression davor (auch Null), greedy, d.h. match't so viel wie irgend möglich
  • + ein oder mehrere der Expression davor, greedy
  • ? Null oder eins
  • {7} genau 7
  • {4,7} zwischen 4 und 7, greedy
  • *? beliebig viele, aber lazy (d.h. match't so wenig wie möglich).

Gruppen:

  • (expr) «speichert» den Match zur späteren Verwendung mit \1 oder $1, je nach Engine. Es wird nach öffnender Klammer nummeriert.

Alternativen:

  • | Die Expression davor, oder jene danach.
  • Extrahieren Sie alle Links von folgendem Code-Schnipsel:
<a href='./68ac1106/spaceadventure.html'>./68ac1106/spaceadventure.html</a><br>
<a href='./0475c543/mouseEffect.html'>./0475c543/mouseEffect.html</a><br>
<a href='./76163dbd/Taschenrechner.html'>./76163dbd/Taschenrechner.html</a><br>
<a href='./4b29d86a/index.html'>./4b29d86a/index.html</a><br><a href='./05c7c22f/wordle.html'>./05c7c22f/wordle.html</a><br>
<a href='./4d4f79fa/index.html'>./4d4f79fa/index.html</a><br>
<a href='./2750fa3e/index.html'>./2750fa3e/index.html</a><br><a href='./projects.html'>./projects.html</a><br>
  • Vervollständigen Sie obige Links mit der vollständigen Adresse: https://ofi.tech-lab.ch/2022/EF05a/
  • Im angezeigten Text soll die Pfadangabe und das .html verschwinden (also nur noch wordle anstatt ./05c7c22f/wordle.html)
  • kurse/ef05a-2021/regex.1651483814.txt.gz
  • Last modified: 2022/05/02 11:30
  • by Ivo Blöchliger