Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#35

AW: Regex Erläuterungen

  Alt 19. Dez 2024, 18:20
Also ich denke es geht um die Teile innerhalb einer RegEx, wie z.B. in einer EMail:

Zitat:
RegEx: '^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]+)*@([a-zA-Z0-9]+(\-[a-zA-Z0-9]+)*\.)+([a-zA-Z]{2,})$';

1. Anfang und Ende des Strings
^: Beginn des Strings. Der Ausdruck prüft ab der ersten Zeichenposition.
$: Ende des Strings. Der gesamte String muss mit dem Muster übereinstimmen.

2. Lokaler Teil der E-Mail (vor dem @)
[_a-zA-Z0-9\-]+:
[ ]: Gibt eine Zeichengruppe an, die erlaubt ist:
_: Unterstrich
a-z: Kleinbuchstaben
A-Z: Großbuchstaben
0-9: Ziffern
\-: Bindestrich (das \ ist erforderlich, weil - sonst als Bereichsoperator interpretiert wird)
+: Mindestens ein Zeichen aus der Gruppe.
(\.[_a-zA-Z0-9\-]+)*:
\.: Ein Punkt (muss mit \ maskiert werden, da der Punkt in RegEx für "jedes Zeichen" steht).
[_a-zA-Z0-9\-]+: Gleiche Zeichen wie oben.
*: Null oder mehr Wiederholungen. Dadurch sind Subdomains im lokalen Teil möglich (z. B. user.name).

3. @-Zeichen
@: Das Literalzeichen @ trennt den lokalen Teil von der Domain.

4. Domainname
([a-zA-Z0-9]+(\-[a-zA-Z0-9]+)*\.)+:
[a-zA-Z0-9]+: Ein oder mehrere Buchstaben oder Ziffern.
(\-[a-zA-Z0-9]+)*:
\-: Ein Bindestrich.
[a-zA-Z0-9]+: Gefolgt von Buchstaben oder Ziffern.
*: Null oder mehr Wiederholungen (Bindestriche sind optional, z. B. my-domain).
\.: Ein Punkt, der die Domainteile trennt.
+: Mindestens ein Domainabschnitt (z. B. example.com, sub.example.com).

5. Top-Level-Domain (TLD)
([a-zA-Z]{2,}):
[a-zA-Z]: Buchstaben.
{2,}: Mindestens zwei Zeichen (z. B. com, org, de).
Wenn der RegEx nicht matched, wie findet man heraus an welcher Stelle genau es gekracht hat, 1 ... 5 ?
Das meine ich, oder geht es doch um etwas Anders?
  Mit Zitat antworten Zitat