Globbing
* een reeks van nul of meer characters
? exact één character
[...]één character uit de verzameling tussen de haken


BRE : Basic Regular Expression
Wordt gebruikt door : sed, grep
Huishoudelijk reglement:
1. Regex matcht alleen binnen één regel
2. De eerste match telt
3. Standaardquantifiers zijn greedy
4. Matching is case sensitive

Metacharacters:
^ $ ( ) [ ] { } \ | . * + ?

Ankers:
^ Begin van de regel
$ Eind van de regel
\b Woordgrens
\B Niet een woordgrens
Groeperen
\(reg ex\)
\n
. 1 willekeurig teken
* 0 of meer keer van het voorgaande teken
\{m,n\}Min m, max n
\{m,\} Minstens m of meer
\{m\}
[:alpha:] een letter
[:upper:] een upper case letter
[:lower:] een lower case letter
[:digit:] een decimaal cijfer
[:xdigit:] een hexadecimaal cijfer
[:alnum:] een letter of cijfer
[:punct:] alle leestekens
[:graph:] een zichtbaar, printable char (geen spatie/tab)
[:print:] alles behalve control characters
[:cntrl:] een control character
[:blank:] een spatie of een tab
[:space:] spatie, tab, form feed, vertical tab, newline, carriage return

LET OP: Deze verzamelnamen mogen alleen binnen regex blokhaken gebruikt worden

Voorbeelden : [[:alpha:]] : 1 willekeurige letter
[[:alpha:]7-9] : 1 willekeurige letter of een 7, 8 of 9.


ERE : Extended Regular Expression (ook wel : Full Regular Expression)
Wordt gebruikt door : egrep, grep -E, awk
Ronde haakjes hebben geen \ meer nodig. Backreference is niet meer ondersteunt. Sommige implementaties hebben dat nog wel
Accolades hebben ook geen haakjes meer nodig
* heeft nu als broertjes + en ?
met | kun je meerder reguliere expressies koppelen (of functie).

*0 of meer keer van het voorgaande teken
+1 of meer keer van het voorgaande teken
?0 of 1 keer van het voorgaande teken

PRE : Perl Regular Expression
Quantifier s:
Greedy: match zoveel mogelijk tekens.
Lazy: match zo weinig mogelijk tekens.
(regex) regex is een groep; wat matcht wordt onthouden (capturing group)
(?:regex) regex is een groep; wat matcht wordt niet onthouden (noncapturing
group), en niet genummerd
Character classes:
notatie betekenis
\s whitespace
\S niet whitespace
\w woordcharacter (letter, cijfer, underscore)
\W niet een woordcharacter
\d cijfer
\D niet een cijfer
[...] verzameling gewenste tekens en/of combinatie van character classes
[^...] verzameling ongewenste tekens en/of combinatie van character classes
[a-z] range van a tot en met z

POSIX character classes en hun ASCII equivalenten
POSIXASCIIbetekenis
[:lower:] [a-z] kleine letter
[:upper:] [A-Z] hoofdletter
[:alpha:] [a-zA-Z] alfabetisch teken
[:alnum:] [a-zA-Z0-9] alfanumeriek teken
[:word:] [A-Za-z0-9_] woord-teken
[:ascii:] [\x00-\x7F] ASCII teken
[:blank:] [ \t] spatie of tab
[:space:] [ \t\n\r\v\f] alle witruimte-tekens
[:digit:] [0-9] cijfer
[:xdigit:] [a-fA-F0-9] hexadecimaal teken
[:graph:] [\x21-\x7E] zichtbaar teken
[:print:] [\x20-\x7E] zichtbaar teken of spatie
[:cntrl:] [\x00-\x1F\x7F] stuurteken
[:punct:] [!"\#$%&'()*+,\-./:;<=>?@\[\\\]^-{|}~]interpunctie en symbolen




Backreferences:
Telling: capturing groups zijn genummerd vanaf 1 in de volgorde van de haakjes openen
'('
notatie betekenis (met k = 1, 2, ..., 9)
\k gematchte tekst van de k-de groep (alleen binnen de regex)
Lookaround assertions:
Deze worden net als non-capturing groups met haakjes genoteerd, waarbij binnen de haakjes eerst een vraagteken volgt. Deze vormen tellen niet mee met de nummering van capturing groups!




Aanvullende informatie
online regex testers

Voorbeelden en info