AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Regex Erläuterungen

Ein Thema von sko1 · begonnen am 12. Dez 2024 · letzter Beitrag vom 20. Dez 2024
Antwort Antwort
Seite 4 von 4   « Erste     234   
Rollo62

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

AW: Regex Erläuterungen

  Alt 19. Dez 2024, 10:47
Es gibt die Named Matched Subexpressions, was aber Delphi meine ich nicht unterstützt.
https://learn.microsoft.com/en-us/do...ar-expressions

Zitat:
Named matched subexpressions

The following grouping construct captures a matched subexpression and lets you access it by name or by number:

(?<name>subexpression)

or:

(?'name'subexpression)
Damit kann man zwar Gruppieren, aber ob es den Status der Gruppen irgendwie zurückgeben kann weiss ich auch nicht.
Das ist vielleicht je nach Implementierung verschieden.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#32

AW: Regex Erläuterungen

  Alt 19. Dez 2024, 17:39
Bei aller Liebe
wäre es nicht einfacher
20 Prüfroutinen zu schreiben also 20 Regexen zu programmieren, vor allem da Regexen sich meist sehr schlecht überprüfen lassen, man versteht die ja in der Regel nicht wenn man sie anguckt, sondern nur in dem Moment wo man sie baut.

Ich habe auch den Eindruck dass OP gar nicht so vertraut mit Regexen ist als dass er in einem Monat mit einem Blick auf eine Regex sagen könnte was diese Regex macht.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Rollo62

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

AW: Regex Erläuterungen

  Alt 19. Dez 2024, 17:43
20 Prüfroutinen zu schreiben also 20 Regexen zu programmieren,
Ich verstehe es so, dass er in EINER RegEx die 20 möglichen Fehlerfälle finden möchte.
Aber ja, alle Bedingungen separat in einer Routine oder sogar Klasse zu verpacken wäre sicher sauberer.
Die kann sich dann in aller epischer Breite um EIN RegEx kümmern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#34

AW: Regex Erläuterungen

  Alt 19. Dez 2024, 17:54
Die kann sich dann in aller epischer Breite um EIN RegEx kümmern.
Kennst du dieses "EINE" RegEx, was ALLES Möglichen erkennen soll, also ob das Eingegebene eine "gramatikalisch" gültige E-Mail-Adresse ergibt. (nicht ob es dieses Mail-Postfach auch wirklich gibt)
$2B or not $2B
  Mit Zitat antworten Zitat
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
sko1

Registriert seit: 27. Jan 2017
601 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#36

AW: Regex Erläuterungen

  Alt 20. Dez 2024, 11:28
Genau darum geht es...

Ciao
Stefan
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
131 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: Regex Erläuterungen

  Alt 20. Dez 2024, 14:16
Code:
^
(?:[A-Z]|(.))
(?:[A-Z]|(.))
(?:[0-9]|(.))
(?:[0-9]|(.))
(?:[A-Za-z0-9]|(.)){,12}
$
Die Idee dahinter sind Non-capturing Groups (?: ) für die erlaubten Zeichen und Capturing Groups () für die nicht erlaubten mit einer Oder-Verknüpfung. Das bedeutet alles was in einer Capture Group landet ist ein falsches Zeichen. Die Zeilenumbrüche sind nur für die bessere Lesbarkeit hier im Forum.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#38

AW: Regex Erläuterungen

  Alt 20. Dez 2024, 15:44
20 Prüfroutinen zu schreiben also 20 Regexen zu programmieren,
Ich verstehe es so, dass er in EINER RegEx die 20 möglichen Fehlerfälle finden möchte.
Aber ja, alle Bedingungen separat in einer Routine oder sogar Klasse zu verpacken wäre sicher sauberer.
Die kann sich dann in aller epischer Breite um EIN RegEx kümmern.
Ne.
Ich meine statt 20 Suchmuster (oder ein großes) in strings , plus einen Parser und einen Interpreter und oder Compiler für die suchmustersprache (Regex) in das Programm zu integrieren, wäre es nicht wesentlich productiver einfach die 20 Prüfroutinen in Pascal (das ist so eine imperative Programmiersprache mit eigentlich ziemlich guten String utilities) zu schreiben?
Vor allem da OP Pascal anscheinend besser kann als Regexen.

Ich denke Regexen sind eher sinnvoll wenn ein User oder ein Admin sie Konfigurieren kann!
Also wenn ich z.b. den Filter oder Validator in einer Einstelldatei oder in der Software interaktiv festlegen möchte.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz