Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie bestimme ich Reguläre Ausdrücke (https://www.delphipraxis.net/183697-wie-bestimme-ich-regulaere-ausdruecke.html)

Buzz Tyca 29. Jan 2015 12:14

Wie bestimme ich Reguläre Ausdrücke
 
Hallo Comunity,
ich mach zur Zeit eine Umschulung zum Anwendungsentwickler und habe vor einigen Wochen mit Delphi angefangen.
Nun habe ich mich schon ein paar mal mit regulären Ausdrücken beschäftigt, sie aber nie richtig verstanden.
Also das Prinzip ist mir natürlich schon klar. Ich bestimme, welche Zeichen in einem String vorkommen dürfen/müssen, oder eben nicht.
Aber jedes mal wenn ich mich entscheide, etwas mit regex zu versuchen, stolpere ich über die Bedingung.
Wie genau sage ich denn nun zum Beispiel, dass in einem String buchstaben und ein Bindestrich vorkommen dürfen?
Mein Vorschlag : '^[a-z/-]$'
a-z = alle Buchstaben
/- = Bindestrich
Ergebnis... Geht nicht!!!

Ich bin inzwischen echt etwas genervt :roll: und hoffe, dass mir von euch jemand helfen kann. Vielleicht kennt ihr ja eine Seite,
die es mal verständlich und mit vielen Beispielen erklärt.

Ich danke Euch :)

LG Buzz Tyca

Der schöne Günther 29. Jan 2015 12:29

AW: Wie bestimme ich Reguläre Ausdrücke
 
Zum Testen und Herumspielen nehme ich, da super-anschaulich und mit vielen Beispiel-Vorlagen, immer gerne

https://regex101.com/

oder

http://www.regexr.com/

Mikkey 29. Jan 2015 12:29

AW: Wie bestimme ich Reguläre Ausdrücke
 
Das ^ bedeutet Zeilenanfang, das $ Zeilenende, das heißt, Du suchst Zeilen, die nur aus einem (Klein-)Buchstaben oder einem Bindestrich bestehen.

Phoenix 29. Jan 2015 13:32

AW: Wie bestimme ich Reguläre Ausdrücke
 
Hi,

also, erstmal mein Favorit zum Nachschlagen: http://www.amazon.de/Regul%C3%A4re-A...ausdr%C3%BCcke

Das Buch macht das ziemlich klar.
Da ich nicht so viele Regexen baue und nur seltenst lese, brauche ich jedes mal etwas zum einarbeiten.
Da hat sich als Tool um mal kurz was auszuprobieren bei mir 'The Regulator' etabliert: http://www.webresourcesdepot.com/lea...the-regulator/

Hier kann ich ne Eingabe und ne Regex reinwerfen.
Das Tool zeigt Dir alle matches, gruppen etc. im Detail an und bietet so eine gute Hilfe um sowohl einfache als auch komplexe Ausdrücke zu debuggen.

Dalai 29. Jan 2015 13:57

AW: Wie bestimme ich Reguläre Ausdrücke
 
RegEx dienen eigentlich dazu, um bestimmte Muster zu prüfen, d.h. deine Angabe, dass bestimmte Zeichen in einem String vorkommen dürfen, ist ziemlich weit gefasst. Das ist zwar möglich mit Zeichenklassen, führt aber sehr wahrscheinlich zu unerwünschten Matches, weil die Bedingung zu weit gefasst ist (es darf eben alles aus der Zeichenklasse vorkommen).

Zitat:

Zitat von Buzz Tyca (Beitrag 1288169)
Mein Vorschlag : '^[a-z/-]$'
a-z = alle Buchstaben
/- = Bindestrich
Ergebnis... Geht nicht!!!

Wie die anderen schon sagten: Zirkumflex (^) steht für den Zeilenanfang, das Dollarzeichen ($) fürs Zeilenende. Hier wird also nur nach Zeilen gesucht, die einen Kleinbuchstaben oder einen Slash oder einen Bindestrich enthalten - und die Zeile ist nur ein Zeichen lang.

Zitat:

Vielleicht kennt ihr ja eine Seite,
die es mal verständlich und mit vielen Beispielen erklärt.
Zwar nicht mit Beispielen, aber ich nutze http://regexr.com/ zum Testen und Entwickeln von RegExen.

MfG Dalai

BUG 29. Jan 2015 14:01

AW: Wie bestimme ich Reguläre Ausdrücke
 
Auch wenn das natürlich keine schnelle Hilfe ist: Ich hatte meine Berührungsängste mit RegEx'en erst überwunden, nachdem ich die theoretischen Grundlagen und die Verbindung zu endlichen Automaten kennengelernt hatte. Es ist aber nicht so kompliziert und ein bisschen TI hat noch niemanden geschadet :lol:

Die richtige Syntax und die Unübersichtlichkeit mancher Ausdrücke ist dann noch eine andere Sache.

Zitat:

Zitat von Phoenix (Beitrag 1288177)
also, erstmal mein Favorit zum Nachschlagen: http://www.amazon.de/Regul%C3%A4re-A...ausdr%C3%BCcke

Hab ich auch an vielen Stellen gutes darüber gehört. Steht auf meiner Kaufliste :mrgreen:

Der schöne Günther 29. Jan 2015 15:09

AW: Wie bestimme ich Reguläre Ausdrücke
 
Zitat:

Zitat von BUG (Beitrag 1288182)
nachdem ich die theoretischen Grundlagen und die Verbindung zu endlichen Automaten kennengelernt hatte

Ich glaube reguläre Ausdrücke sind das einzige brauchbare was ich aus theoretischer Informatik mitgenommen habe. Linkseindeutige Level 2,5-Grammatiken, Chomsky-Hierachie, Pumping-Lemma, ... :roteyes:

himitsu 29. Jan 2015 16:24

AW: Wie bestimme ich Reguläre Ausdrücke
 
look ahead, look behind, ... (funktioniert nur leider nicht in jeder RegExLib :cry:)

Hatte mir mal selber eine RegEx-Lib geschrieben ... da lernt man auch viele Dinge. :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 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