Formulare in MyDocSafe unterstützen reguläre Ausdrücke.
Was sind reguläre Ausdrücke und wie verwenden Sie sie?
Ein regulärer Ausdruck, kurz Regex, ist ein Muster, das eine bestimmte Zeichenfolge beschreibt. Wenn Sie beispielsweise sicherstellen möchten, dass eine Person beim Ausfüllen eines Formulars genau den von Ihnen geforderten Text eingibt, können Sie mit einem regulären Ausdruck ein bestimmtes Eingabemuster erzwingen oder die Daten validieren.
Angenommen, Sie möchten eine Sozialversicherungsnummer aus dem UK (National Insurance Number, NIN) abfragen. Sie besteht aus 2 Buchstaben, gefolgt von 6 Ziffern und einem weiteren Buchstaben. Ein regulärer Ausdruck für dieses Muster lautet:
[a-z|A-Z]{2}[0-9]{6}[a-z|A-Z]
Dabei bedeutet [a-z] „ein beliebiger Kleinbuchstabe“, [A-Z] „ein beliebiger Großbuchstabe“ und | „oder“. Somit bedeutet [a-z|A-Z] „ein beliebiger Buchstabe“, {2} bedeutet „zweimal wiederholen“ usw.
Einige Regierungen stellen reguläre Ausdrücke für häufig verwendete Muster bereit. Ein Beispiel finden Sie in diesem Wikipedia-Artikel über Postleitzahlen im UK.
Für eine Kurzübersicht zu regulären Ausdrücken suchen Sie nach „Anleitung zu regulären Ausdrücken“ oder lesen Sie weiter.
Zeichen | Bedeutung | Beispiel | Beispieltreffer |
\d | Die meisten Implementierungen: eine Ziffer | file_\d\d | file_25 |
\d | .NET, Python 3: eine Unicode-Ziffer aus einem beliebigen Schriftsystem | file_\d\d | file_9੩ |
\w | Die meisten Implementierungen: „Wortzeichen“: ASCII-Buchstabe, Ziffer oder Unterstrich | \w-\w\w\w | A-b_1 |
\w | .Python 3: „Wortzeichen“: Unicode-Buchstabe, Ideogramm, Ziffer oder Unterstrich | \w-\w\w\w | 字-ま_۳ |
\w | .NET: „Wortzeichen“: Unicode-Buchstabe, Ideogramm, Ziffer oder verbindendes Zeichen | \w-\w\w\w | 字-ま‿۳ |
\s | Die meisten Implementierungen: „Leerraumzeichen“: Leerzeichen, Tabulator, Zeilenumbruch, Wagenrücklauf, vertikaler Tabulator | a\sb\sc | a b |
\s | .NET, Python 3, JavaScript: „Leerraumzeichen“: ein beliebiges Unicode-Trennzeichen | a\sb\sc | a b |
\D | Ein Zeichen, das keine Ziffer gemäß der Definition von \d in Ihrer Implementierung ist | \D\D\D | ABC |
\W | Ein Zeichen, das kein Wortzeichen gemäß der Definition von \w in Ihrer Implementierung ist | \W\W\W\W\W | *-+=) |
\S | Ein Zeichen, das kein Leerraumzeichen gemäß der Definition von \s in Ihrer Implementierung ist | \S\S\S\S | Yoyo |
Quantifizierer
Quantifizierer | Bedeutung | Beispiel | Beispieltreffer |
+ | Einmal oder häufiger | Version \w-\w+ | Version A-b1_1 |
{3} | Genau dreimal | \D{3} | ABC |
{2,4} | Zwei- bis viermal | \d{2,4} | 156 |
{3,} | Dreimal oder häufiger | \w{3,} | regex_tutorial |
* | Nullmal oder häufiger | A*B*C* | AAACC |
? | Einmal oder keinmal | plurals? | plural |
Weitere Zeichen
Zeichen | Bedeutung | Beispiel | Beispieltreffer |
. | Ein beliebiges Zeichen außer einem Zeilenumbruch | a.c | abc |
. | Ein beliebiges Zeichen außer einem Zeilenumbruch | .* | wie auch immer. |
\. | Ein Punkt (Sonderzeichen: muss durch vorangestelltes \ maskiert werden) | a\.c | a.c |
\ | Maskiert ein Sonderzeichen | \.\*\+\? \$\^\/\\ | .*+? $^/\ |
\ | Maskiert ein Sonderzeichen | \[\{\(\)\}\] | [{()}] |
Logik
Logik | Bedeutung | Beispiel | Beispieltreffer |
| | Alternative / ODER-Verknüpfung | 22|33 | 33 |
( … ) | Erfassende Gruppe | A(nt|pple) | Apple (erfasst „pple“) |
\1 | Inhalt von Gruppe 1 | r(\w)g\1x | regex |
\2 | Inhalt von Gruppe 2 | (\d\d)\+(\d\d)=\2\+\1 | 12+65=65+12 |
(?: … ) | Nicht erfassende Gruppe | A(?:nt|pple) | Apple |
Weitere Leerraumzeichen
Zeichen | Bedeutung | Beispiel | Beispieltreffer |
\t | Tabulator | T\t\w{2} | T ab |
\r | Wagenrücklaufzeichen | siehe unten |
|
\n | Zeilenvorschubzeichen | siehe unten |
|
\r\n | Zeilentrenner unter Windows | AB\r\nCD | AB |
\N | Perl, PCRE (C, PHP, R…): ein Zeichen, das kein Zeilenumbruch ist | \N+ | ABC |
\h | Perl, PCRE (C, PHP, R…), Java: ein horizontales Leerraumzeichen: Tabulator oder Unicode-Leerzeichen |
|
|
\H | Ein Zeichen, das kein horizontales Leerraumzeichen ist |
|
|
\v | .NET, JavaScript, Python, Ruby: vertikaler Tabulator |
|
|
\v | Perl, PCRE (C, PHP, R…), Java: ein vertikales Leerraumzeichen: Zeilenvorschub, Wagenrücklauf, vertikaler Tabulator, Seitenvorschub, Absatz- oder Zeilentrenner |
|
|
\V | Perl, PCRE (C, PHP, R…), Java: ein beliebiges Zeichen, das kein vertikales Leerraumzeichen ist |
|
|
\R | Perl, PCRE (C, PHP, R…), Java: ein Zeilenumbruch (Kombination aus Wagenrücklauf und Zeilenvorschub sowie alle Zeichen, auf die \v zutrifft) |
|
|
Weitere Quantifizierer
Quantifizierer | Bedeutung | Beispiel | Beispieltreffer |
+ | + (einmal oder häufiger) ist „gierig“ | \d+ | 12345 |
? | Macht Quantifizierer „nicht gierig“ | \d+? | 1 in 12345 |
* | * (nullmal oder häufiger) ist „gierig“ | A* | AAA |
? | Macht Quantifizierer „nicht gierig“ | A*? | leere Zeichenfolge in AAA |
{2,4} | Zwei- bis viermal, „gierig“ | \w{2,4} | abcd |
? | Macht Quantifizierer „nicht gierig“ | \w{2,4}? | ab in abcd |
Zeichenklassen
Zeichen | Bedeutung | Beispiel | Beispieltreffer |
[ … ] | Eines der Zeichen in den Klammern | [AEIOU] | Ein großgeschriebener Vokal |
[ … ] | Eines der Zeichen in den Klammern | T[ao]p | Tap oder Top |
- | Bereichsangabe | [a-z] | Ein Kleinbuchstabe |
[x-y] | Eines der Zeichen im Bereich von x bis y | [A-Z]+ | GREAT |
[ … ] | Eines der Zeichen in den Klammern | [AB1-5w-z] | Eines dieser Zeichen: A,B,1,2,3,4,5,w,x,y,z |
[x-y] | Eines der Zeichen im Bereich von x bis y | [ -~]+ | Zeichen aus dem druckbaren Bereich der ASCII-Tabelle. |
[^x] | Ein Zeichen, das nicht x ist | [^a-z]{3} | A1! |
[^x-y] | Ein Zeichen, das nicht im Bereich von x bis y liegt | [^ -~]+ | Zeichen, die nicht im druckbaren Bereich der ASCII-Tabelle liegen. |
[\d\D] | Ein Zeichen, das eine Ziffer oder keine Ziffer ist | [\d\D]+ | Beliebige Zeichen, ein- |
[\x41] | Erfasst das Zeichen an der hexadezimalen Position 41 in der ASCII-Tabelle, also A | [\x41-\x45]{3} | ABE |
Anker und Grenzen
Anker | Bedeutung | Beispiel | Beispieltreffer |
^ | Anfang der Zeichenfolge oder Zeilenanfang, abhängig vom Mehrzeilenmodus. (Innerhalb von [^eckigen Klammern] bedeutet es jedoch „nicht“.) | ^abc .* | abc (Zeilenanfang) |
$ | Ende der Zeichenfolge oder Zeilenende, abhängig vom Mehrzeilenmodus. Viele implementierungsabhängige Feinheiten. | .*? the end$ | this is the end |
\A | Anfang der Zeichenfolge | \Aabc[\d\D]* | abc (Zeichenfolgen... |
\z | Absolutes Ende der Zeichenfolge | the end\z | this is...\n...the end |
\Z | Ende der Zeichenfolge oder (außer in Python) vor dem letzten Zeilenumbruch | the end\Z | this is...\n...the end\n |
\G | Anfang der Zeichenfolge oder Ende des vorherigen Treffers |
|
|
\b | Wortgrenze | Bob.*\bcat\b | Bob ate the cat |
\b | Wortgrenze | Bob.*\b\кошка\b | Bob ate the кошка |
\B | c.*\Bcat\B.* | copycats |
