Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Regular Expression gesucht um Zeichen zu ignorieren (https://www.delphipraxis.net/124305-regular-expression-gesucht-um-zeichen-zu-ignorieren.html)

Bernhard Geyer 18. Nov 2008 14:00


Regular Expression gesucht um Zeichen zu ignorieren
 
Ich habe einen String der Form:

1234.567.890_TestTestTest

und will als Ergebnis

1234567890

haben.

Über [^_]* bekomme ich den String als "1234.567.890" Jedoch soll dann noch die Punkte gefiltert werden.
Hat jemand eine Idee wie man das per RegEx hinbekommt?

Daniel 18. Nov 2008 14:04

Re: Regular Expression gesucht um Zeichen zu ignorieren
 
Ich würd's mit einem Replace machen: Alles, was NICHT der gewünschten Zeichenmenge entspricht, wird mit Nüschd ersetzt.

Code:
string = preg_replace( '[^0-9]', '', string )

Bernhard Geyer 18. Nov 2008 14:12

Re: Regular Expression gesucht um Zeichen zu ignorieren
 
Zitat:

Zitat von Daniel
Ich würd's mit einem Replace machen: Alles, was NICHT der gewünschten Zeichenmenge entspricht, wird mit Nüschd ersetzt.

Code:
string = preg_replace( '[^0-9]', '', string )

Ich habe an dieser Stelle aber (aktuell) nur Regex zur Verfügung. Der User kann hier nur eine Regex angeben und definieren welche Gruppe verwendet werden soll (bzw. 0 dafür das der gesamte Ergebnisstring verwendet wird). Will wenn möglich hier nicht noch andere Auswertungen implementieren da bisher RegEx immer ausreichend war.

nicodex 18. Nov 2008 14:48

Re: Regular Expression gesucht um Zeichen zu ignorieren
 
Vielleicht mit Rückwärtsreferenzen (\x) ?
Nicht getestet: ([^_]*)(\d*)\1

Bernhard Geyer 18. Nov 2008 15:44

Re: Regular Expression gesucht um Zeichen zu ignorieren
 
Zitat:

Zitat von Daniel
Ich würd's mit einem Replace machen: Alles, was NICHT der gewünschten Zeichenmenge entspricht, wird mit Nüschd ersetzt.

Code:
string = preg_replace( '[^0-9]', '', string )

Gibts eine Library die preg_replace für Delphi (Unicode-Fähig) implementiert?
Auf RegEx-Ebene hab ich auch mit Hilfe von Kollegen in anderen Bereich nix gefunden:-(

mirage228 18. Nov 2008 15:49

Re: Regular Expression gesucht um Zeichen zu ignorieren
 
Falls Du ein VS C++ hast, kannst Du bestimmt die pcre.dll von http://www.renatomancuso.com/ für Unicode einmal kompilieren... müsstest dann bei < D2009 noch die Klassen anpassen.

Viele Grüße,

David


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