AGB  ·  Datenschutz  ·  Impressum  







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

RegEx-Ausdruck gesucht

Ein Thema von Bernhard Geyer · begonnen am 19. Okt 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#1

RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 08:17
Ich habe Texte die folgendes Aussehen haben könnten:

1234567

bzw.

4545454_1234567_Text

Jetzt würde ich einen RegEx-Ausdruck benötigen der beide Fälle abdeckt und mir jeweils den Text/Zahl "1234567" liefert.
Da ich in RegEx noch nicht alle Feinheiten kenne bin ich etwas überfordert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#2

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 08:42
Zitat:
Da ich in RegEx noch nicht alle Feinheiten kenne bin ich etwas überfordert.
Noch nicht in allen seinen Feinheiten?
Ich würd sagen.. garnicht

RegEx
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 08:55
Kannst Du diesen regulären Ausdruck mal weiter erklären?

Können pauschal alle Zeichen vor und nach dem Unterstrich weggeworfen werden? Befinden sich davor wirklich nur Ziffern und danach nur Buchstaben? Wie ist das zugrundeliegende Alphabet definiert: Nur "normale Buchstaben" oder auch Sonderzeichen? Besteht die Zeichenkette, die Du haben willst tatsächlich stets nur aus Ziffern?

Solche Fragen sind für die Generierung des Ausdruckes hilfreich.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 09:16
Zitat von opfer.der.genauigkeit:
Noch nicht in allen seinen Feinheiten?
Ich würd sagen.. garnicht
Stimmt nicht.
Wenn ich mit der RegEx (\d*)_(\d*) bekomm ich als zweite Gruppe für das zweite Beispiel den gewünschten Text

Zitat von Daniel:
Kannst Du diesen regulären Ausdruck mal weiter erklären?

Können pauschal alle Zeichen vor und nach dem Unterstrich weggeworfen werden? Befinden sich davor wirklich nur Ziffern und danach nur Buchstaben? Wie ist das zugrundeliegende Alphabet definiert: Nur "normale Buchstaben" oder auch Sonderzeichen? Besteht die Zeichenkette, die Du haben willst tatsächlich stets nur aus Ziffern?

Solche Fragen sind für die Generierung des Ausdruckes hilfreich.

Es gibt zwei Fälle:

Fall 1: Es ist nur eine Zahl (1234567) ohne Text davor oder danach.

Fall 2: Es ist erst eine Zahl (4545454), anschließend immer ein Unterscore (_), danach wieder eine Zahl (1234567). Teilweise kann jetzt eine Bindestich (-) mit einer weiteren Zahl kommen (hab ich gerade erst gesehen). Anschließend ein Unterscore (_) und ein beliebiger Text.

Benötigt wird

Fall 1: Die komplette Zahl

Fall 2: Die Zahl nach dem ersten Unterscore und der teilweise vorhandene Bindestrich mit der 2ten Zahl.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 09:45
Hi,

also ich habe das ausprobiert und es ging, probiere es mal aus
Edit: Die einzelnen Teile müsstest Du dann mit den einzelnen CaptureGroups herausbekommen

Code:
(\d+)(\_(\d+)(\-(\d+)|)|)
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 10:06
Nicht ganz. Jedenfalls nicht mit dem gleichen Index der Capture-Group.

Beim Fall 2 muß ich den Index 3 bemühen und beim Fall 1 ist es der Index 1.

Ich verwende übrigens TRexExpr mit Delphi.
Aber beim Online-Test kommt das gleiche raus.

Evtl. muß ich ja in meinem Programm einen "primären" Index definieren und falls da nichts raus kommt soll der alternative Index geprüft werden. Müßte zwar das Programm zwar etwas erweitern, aber falls es mit Rexex nicht über den gleichen Index geht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 10:18
Hi,

Da musst Du eine Fallunterscheidung machen, das stimmt.

Wenn Index 3 bei den Gruppen nicht gesetzt ist (bzw. = '' ist), musst Du dann einfach von Fall I ausgehen.
Eine andere Möglichkeit sehe ich da jetzt auch nicht...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 10:35
Vielleicht so:
Code:
^(\d+_)?(\d+)[^0-9]*$
Dann ist's immer in der 2. Gruppe.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 10:48
Zitat von Flocke:
Vielleicht so:
Code:
^(\d+_)?(\d+)[^0-9]*$
Dann ist's immer in der 2. Gruppe.
Super

Jetzt bräuchte ich noch die Erweiterung das folgender Fall auch geht

4545454_1234567-1_Text

und als Ergebnis

1234567-1

gefunden wird. Sprich nach der Zahl mittels Bindestrich auch noch eine "Extension-Zahl" gefunden wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: RegEx-Ausdruck gesucht

  Alt 19. Okt 2005, 11:07
So?
Code:
^(\d+_)?(\d+(-\d+)?)[^0-9]*$
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:01 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