AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RegEx-Formatierung

Ein Thema von hansklok · begonnen am 10. Aug 2015 · letzter Beitrag vom 13. Aug 2015
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

AW: RegEx-Formatierung

  Alt 12. Aug 2015, 17:21
Ein Fallstrick sind die "optionalen" Werte und die Abhängigkeiten.
Wenn ich es richtig verstehe, sind je nach Datumstyp unterschiedliche Monatsnamen möglich. Dann ist noch die Frage, ob du überprüfen musst, dass das zusammenpasst, oder ob du dich darauf verlassen kannst. Im zweiten Fall ist es einfacher, denn da kannst du per Regex auch Kombinationen erlauben, die keinen Sinn machen, und die man deswegen als ungültig verwerfen müsste.

Ein weiteres Problem sind die
Code:
\s*
, denn irgend eine Trennung zwischen den Zahlen brauchst du: Also zumindest entweder Monatsnamen (Buchstaben) oder Leerstellen, oder beides, um Zifferngruppen zu trennen. Das muss auch in die Regex Logik hinein, sonst landet, wie in ein paar der Beispiele, ein Teil der Jahreszahl in dem Feld, in dem du den Tag erwartest. Im nachhinein per Programm, wie ich in einem Post weiter oben geschrieben habe, ist es wahrscheinlich gar nicht mehr möglich, das sauber auseinanderzudividieren.


Vielleicht ist es zielführend, erst einfache regexausdrücke zu definieren und den kompletten regex aus diesen einfacheren ausdrücken zusammenzusetzen:

const
einfachesdatum = '.....'; // was auch immer
datumsbereich = '(?:BET\s+' + einfachesdatum + '\s+AND\s+' + einfachesdatum + ')';
datum = '(?:' + datumsbereich + '|' + einfachesdatum + ')';

etc.

Eine andere Idee, um das Parsen zu vereinfachen, wäre, erst einmal den String durchzugehen und prinzipiell überall, wo Buchstaben und Zahlen unmittelbar aufeinanderfolgen, eine Leerstelle einzufügen. Dann kannst du im Regex Trennzeichen zwischen den Gruppen zwingend voraussetzen, mit \s+ statt \s* wird das Erkennen der Pattern stabiler und wahrscheinlich auch schneller.

Geändert von idefix2 (12. Aug 2015 um 17:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz