AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hilfe bei RegEx gesucht

Ein Thema von CG2003 · begonnen am 4. Jun 2020 · letzter Beitrag vom 4. Jun 2020
Antwort Antwort
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#1

Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 07:28
Hallo zusammen,

ich benötige bitte einmal Hilfe bei einer RegEx.

Ich habe folgenden String:

Code:
[8018]406471600123456780

Nun möchte ich alle Zeichen nach

Code:
[8018]4064716

erhalten, allerdings nur begrenzt auf 6 Stellen, so dass ich

Code:
001234
erhalte.


Ich habe hier irgendwie keine Idee wie ich das realisieren kann.
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
421 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 07:50
Blöde Fragen, da aus deiner nicht ersichtlich:
  • Musst du das einmal machen oder mehrfach?
  • Gibt es verschiedene Strings, so das der vordere Teil auch identifiziert werden muss?
  • Muss es unbedingt RegEx sein?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 07:56
Hallo,

ja es muss leider RegEx sein.

Ein kompletter String kann folgendermaßen aussehen:

Code:
[8018]406471600123456780[414]4064716123456[253]4064716123456ABCDEFGHIJKLMNOPQ
Er kann aber auch so aussehen (Reihenfolge kann sich ändern):

Code:
[414]4064716123456[8018]406471600123456780[253]4064716123456ABCDEFGHIJKLMNOPQ
Daher muss ich meine Werte immer anhand der Identifizierer (die Werte in den eckigen Klammern) auslesen.


Ziel vom ersten Beispiel hier müsste folgendess sein (können auch drei verschiedene Aufrufe sein):

Code:
00123456780
Code:
123456
Code:
123456ABCDEFGHIJKLMNOPQ
Wichtig wäre mir "nur" ein Aufruf wie

Suche mir "[8018]" und gebe mir danach alle x Zeichen aus.
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com

Geändert von CG2003 ( 4. Jun 2020 um 08:00 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 09:09
Übersehe ich etwas, oder ist es nicht einfach nur
Code:
\[8018\]4064716(.{6})
?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.149 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 09:40
Jo, wenn er das Ergebnis aus einer CaptureGroup (der Ersten) nimmt,
ansonsten kommt der erste Teil einfach in einen Lookahead rein.

Eventuell auch noch \d bzw [0-9] für die Ziffern, falls die nicht exakt sein sollen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
421 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 09:45
@Günther: Dann wäre das Ergebnis doch "001234" oder nicht? Ich selber kenne mich mit RegEx nicht so gut aus und mache so etwas in der Regel mit String splitting-Routinen. Da hier aber auf RegEx bestanden wird lasse ich es außen vor.

Wenn dein RegEx passt müsste so aussehen:
\[8018\]4064716(.{8}) -> 00123456
Den String dann um die vorderen Zwei Stellen kürzen -> 123456 //Frage: Müssen immer die ersten beiden Stellen gekürzt werden oder nur wenn sie "0" sind? RegEx: [1-9]{6}
Und den "Text" anhängen -> 123456ABCDEFGHIJKLMNOPQ //Frage: Ist der Text veränderlich und muss ausgelesen werden? Wenn ja: Immer die gleiche Länge oder sonst ein Merkmal? RegEx: ([A-Z])\w+
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 4. Jun 2020 um 10:49 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 10:09
@Günther: Dann wäre das Ergebnis doch "001234" oder nicht?
Ja, ist es. Ich dachte, das wolltest du?

Kennst du
www.regexr.com
oder
www.regex101.com?

Da kann man super herumspielen, da kommt man eigentlich immer schnell zum Ziel.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
421 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 10:29
Wieso ich? ^^ Bin nicht der TE

Er wollte ja die 123456 ohne die führenden Nullen.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Hilfe bei RegEx gesucht

  Alt 4. Jun 2020, 10:49
Übersehe ich etwas, oder ist es nicht einfach nur
Code:
\[8018\]4064716(.{6})
?
Danke, das hat mich schon auf den richtigen Weg gebracht.

Auch allen anderen vielen Dank für die Antworten!
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
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 18:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf