Anchors/Ankers/Positions-Metacharakter
^ |
Am Anfang der Zeile |
^abc |
abc def ghi abc |
$ |
Am Ende der Zeile |
cba$ |
abc def hij fed cba |
\A |
Überprüft erste Buchstabe eines Strings |
\A(Apfel) |
Apfelkuchen Birnenkuchen |
\Z |
Überprüft das Ende eines Strings |
kuchen\Z |
Apfelkuchen Birnenkuchen |
\b |
Überprüft das Enden des Wortes |
kuchen\b |
Apfelkuchen Birnenkuchen |
\B |
Überprüft die Wörter/Zeichenketten innerhalb oder am Anfang |
o\B |
Lotto |
Anchors/Ankers/Positions-Metacharakter werden dazu benutzt um innerhalb eines Strings zu suchen. Das unterscheidet diese von anderen Befehlen, da diese die einzelnen Charakter normalerweise betrachten.
Single-Meta-Charakter
. |
Gib mir ein beliebiges Charakter (= a-z, A-Z, 0-9, …) außer einer Nichtsichtbaren Charakter(z.B. Enter oder /s) zurück |
. |
abcdefghijklmn |
\d |
Gib mir alle Zahlen (Digits) zurück, die du findest |
\d |
abcd123efgh |
\D |
Gib mir alle Nicht-Zahlen (Digits) zurück, die du findest |
\D |
abcd123efgh |
\w |
Gib mir alle Wort-Charakter (a-z,A-Z,0-9) zurück |
\w |
abcd123efgh |
\W |
Gib mir alle nicht-Wort-Charakter zurück (!, “, , §, $, %, &, /, (, ), =, ?, `, ., …) |
\W |
123?!321 |
\s |
Gib mir alle Leerzeichen (= whiteSpaces), ggf. Zeilenumbrüche, Enden der Zeilen, usw. zurück („ „) |
\s |
123 3434 |
\S |
Gib mir alle nicht-Leerzeichen, oder ggf. Nicht- Zeilenumbrüche, -Enden der Zeilen, usw. zurück |
\S |
123 3434 |
Merke: Single-Meta-Charakter beziehen sich nur auf einzelne Charakter
Quantifiers
? |
= Schaue die den vorherigen Charakter an, dieser kann einmal vorkommen, muss aber nicht vorkommen |
(er)? |
Rechererere er |
* |
(Greedy) Schau dir den vorherigen Charakter an, dieser kann beliebig (0-x) oft vorkommen |
\w.* |
Rechererer er robert licem |
*? |
(Ungreedy) |
\w.?* |
Rechererer er robert licem |
+ |
Schau dir den vorherigen Charakter an, dieser muss einmal vorkommen, darf aber auch öfters vorkommen (1-x) |
r+ |
Rechererer er robert licem |
{x,y} |
Schau dir den vorherigen Charakter an, dieser muss mindestens x mal vorkommen, und darf höchstens y vorkommen. |
r{1,2} |
Rechererer er robert licem |
| |
Oder-Operator |
a|x |
abcdef...xyz |
Die Quantifier-Operatoren (+,*) sind greedy (= gierig). D.h. diese möchten immer das längstmögliche Charakterset zurückgeben.
Wenn man aber nun nicht an dem/oder nur an dem Inhalt interessiert ist, muss man diese Operatoren lazy machen. siehe hierzu Foliensatz
Ranges
(...) |
Gruppe an Charaktern, die gesucht werden sollen |
(kuchen)+ |
Apfelkuchen, Birnenkuchen, kuche, Kuchen |
[...] |
Verkürzte "Oder"-Schreibweise. Gib in der Range von ... - ... alle Charakter an. |
[uch] |
Apfelkuchen, Birnenkuchen, kuche, Kuchen |
[^...] |
Verkürzte "Oder"-Schreibweise. Gib in der Range von ... - ... alle Charakter außer diese an. |
[^uch] |
Apfelkuchen, Birnenkuchen, kuche, Kuchen |
[...-...] |
Gib alle Charkter in diesem Bereich an. z.B. 0-9A-Za-z |
[a-z] |
Apfelkuchen, Birnenkuchen, kuche, Kuchen |
Assertion/Behauptungen
?=(a) |
Sobald du a gefunden hast, schaue dir die Charakter davor an. (Lookahead assertion) |
?!(a) |
?<=(a) |
= Sobald du a gefunden hast, schaue dir die Charakter danach an. (Lookbehind assertion) |
?!<(a) |
?<=(a) (...) ?=(a) |
Suche nach a, sobald du dieses gefunden hast schaue dir alle Charakter an, bis du das nächste a findest. |
(?<=a)(\W|\w)+(?=a) |
a Kuchen leben a |
Escapen von Meta-Charakter
^ |
[ |
. |
$ |
( |
) |
* |
+ |
? |
| |
< |
> |
\ |
{ |
Wenn man nach Meta-Charakter sucht muss man diese immer Escapen d.h. ein \ davor setzen
|