Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   RegEx gesucht (https://www.delphipraxis.net/164466-regex-gesucht.html)

Bernhard Geyer 14. Nov 2011 13:01

RegEx gesucht
 
Ich habe String die eine bestimmte Zeichenkette am Ende haben können.

Bsp:

A_123.456.789.D
B_345_345_STRING

Ich will jetzt bei beiden per RegEx den kompletten String ohne den festen Text "_STRING" weg bekommen.
Leider fällt mir keine passende RegEx ein :-(

Ich muss über RegEx gehen da das Programm hier nur eine RegEx vorsieht.

himitsu 14. Nov 2011 13:08

AW: RegEx gesucht
 
Was genau möchtest du jetzt haben? So richtig verstanden hab ich das wohl nicht.

Klingt so, als wenn du alles löschen willst, bis auf das "_STRING".

x000x 14. Nov 2011 13:09

AW: RegEx gesucht
 
Hallo Bernhard,

kannst du mal für deine beiden Beispiele das gewünschte Ergebnis mit angeben?
(Ich weiß nicht genau, ob du nur das _STRING entfernen möchtest oder auch die anderen Unterstriche/Buchstaben)

VG Peter

Bernhard Geyer 14. Nov 2011 13:11

AW: RegEx gesucht
 
Es soll alles zurückgeliefert werden außer dem _STRING

Orginal Regex-Ergebnis
A_123.456.789.D -> A_123.456.789.D
B_345_345_STRING -> B_345_345

x000x 14. Nov 2011 13:39

AW: RegEx gesucht
 
Hallo Bernhard,

- "_STRING" steht immer am Ende von deinem String
- Großkleinschreibung muss nicht berücksichtigt werden

Dann ist es doch einfach "_STRING$" oder nicht? (bzw. /(_STRING$)/)
Ansonsten hab ich das Problem nicht verstanden...

VG Peter

rwachtel 14. Nov 2011 13:40

AW: RegEx gesucht
 
Code:
(.*)_string

Bernhard Geyer 14. Nov 2011 14:07

AW: RegEx gesucht
 
Zitat:

Zitat von rwachtel (Beitrag 1136099)
Code:
(.*)_string

Hiermit bekomm ich nur für das Beispiel mit "_STRING" am Ende in der Gruppe 1 den rest


Zitat:

Zitat von x000x (Beitrag 1136098)
- "_STRING" steht immer am Ende von deinem String

Nein. Es gibt Texte mit "_STRING" am Ende und welche ohne.
Die ohne "_STRING" am ende sollen vollständig zurück geliefert werden und bei denen mit "_STRING" am Ende soll dieser Weggeschnittten werden


Zitat:

Zitat von x000x (Beitrag 1136098)
- Großkleinschreibung muss nicht berücksichtigt werden

Es kommt der wegzuschneidende Text genau in dieser Schreibweise vor.

Zitat:

Zitat von x000x (Beitrag 1136098)
Dann ist es doch einfach "_STRING$" oder nicht? (bzw. /(_STRING$)/)
Ansonsten hab ich das Problem nicht verstanden...

Kommt bei mir nix raus.

Nochmal die Beiden Beispiele (anders geschrieben damit es nicht von der Forensoftware "Umgeschrieben" wird:

Code:
Orginaltext        ->    Gesuchtes RegEx-Ergebnis
A_123.456.789.D    ->    A_123.456.789.D
B_345_345_STRING   ->    B_345_345
Falles es was bringt:

Im "Nutztext" kommen Zahlen, Punkte und Unterstrich vor.

Muss mich nochmal vergewissern ob

[0-9][0-9,_,.]{3,}[0-9]

auch reichen würde wenn die Anfagen/Ende-Buchstaben nicht benötigt würden.

ULIK 14. Nov 2011 14:09

AW: RegEx gesucht
 
Code:
(.*)(?=_STRING|$)
Liefert in \1 den ersten Teil des Textes wenn _STRING gefunden oder aber das Zeilenende erreicht ist.


Grüße,
Uli


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