Reguljära uttryck är en konst. En sak jag brottades med idag var att jag behövde rensa i en fil. Ett problem som då uppstod var att jag behövde ta bort vissa taggar. Det i sig är inget problem, det kan man göra med <tag>.*</tag>. Det tar bort allt mellan taggarna. Men hur gör man om det kan finnas en radbrytning i taggen? Lösningen jag använde var inte helt elementär.

Först fick jag hitta två tecken som inte användes i filen, exempelvis paragraftecknet (§) och soltecknet (¤). Jag ersatte starttaggen med paragraftecknet och sluttaggen med soltecknet. Sen kunde jag hitta allt mellan taggarna medelst följande reguljära uttryck:

§[^¤]*¤

Hur utläser man detta? Om man läser det som står utanför hakparanteserna så skall det börja med ett paragraftecken, följt av noll eller fler  (asterisken) tecken (punkten) och slutar med ett soltecken. Det inom hakparenteserna är en negering (cirkumflex) av soltecken, följt av asterisken. Alltså skulle man kunna utläsa det som: När man finner ett paragraftecken, ta bort alla tecken som inte är soltecken fram tills du hittar ett soltecken. Det gör att man tar en tagg i sänder.

Ren magi.