AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie bestimme ich Reguläre Ausdrücke
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bestimme ich Reguläre Ausdrücke

Offene Frage von "himitsu"
Ein Thema von Buzz Tyca · begonnen am 29. Jan 2015 · letzter Beitrag vom 29. Jan 2015
Antwort Antwort
Buzz Tyca

Registriert seit: 29. Jan 2015
1 Beiträge
 
#1

Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 13:14
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 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

Geändert von Buzz Tyca (29. Jan 2015 um 13:33 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 13:29
Zum Testen und Herumspielen nehme ich, da super-anschaulich und mit vielen Beispiel-Vorlagen, immer gerne

https://regex101.com/

oder

http://www.regexr.com/
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#3

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 13:29
Das ^ bedeutet Zeilenanfang, das $ Zeilenende, das heißt, Du suchst Zeilen, die nur aus einem (Klein-)Buchstaben oder einem Bindestrich bestehen.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#4

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 14:32
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 14:57
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).

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

Geändert von Dalai (29. Jan 2015 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 15:01
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

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

Hab ich auch an vielen Stellen gutes darüber gehört. Steht auf meiner Kaufliste
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 16:09
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, ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wie bestimme ich Reguläre Ausdrücke

  Alt 29. Jan 2015, 17:24
look ahead, look behind, ... (funktioniert nur leider nicht in jeder RegExLib )

Hatte mir mal selber eine RegEx-Lib geschrieben ... da lernt man auch viele Dinge.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Jan 2015 um 17:26 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 09:22 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