![]() |
Problem mit RegEx-Ausdruck
Hallo!
Ich habe folgenden RegEx-Ausdruck:
Code:
Dieser soll Dinge in folgendem Format finden: <nr:124> oder <nr:512>. Das tut er aber leider nicht und ich finde keinen Fehler im Ausdruck :wall: Kann jemand von euch sagen, warum das nicht funktioniert? Ich befasse mich noch nicht lange mit RegEx.
\<nr:([0-7]+[0-7]+[0-7])\>
|
Re: Problem mit RegEx-Ausdruck
Ich habe das gerade mal ausprobiert. Das geht doch wunderbar, ich weiss nicht wo da dein Problem ist.
Kannst du da nicht mal mehr Infos geben. Zum Beispiel... PHP? Delphi? -> welche Funktion -> welche Eingabedaten Ein genaues Beispiel was wie nicht geht. Gruss Thorsten |
Re: Problem mit RegEx-Ausdruck
Code:
Heißt: "<nr:(1 oder mehr ziffern)(1 oder mehr ziffern)(1 ziffer)>"
\<nr:([0-7]+[0-7]+[0-7])\>
Was du suchst wäre
Code:
\<nr:([0-7]{3})\>
oder \<nr:([0-7][0-7][0-7])\> |
Re: Problem mit RegEx-Ausdruck
Ich benutze
![]() Irgendwie funktionieren die beiden Codes auch nicht. Ich habe allerdings das Projekt mal testweise mit einem anderen Ausdruck getestet: Es funktioniert! Ich benutze folgende Funktion:
Delphi-Quellcode:
h ist ein String, der den zu bearbeitenden Text enthält. Allerding ist das Ergebnis dieser Funktion immer gleich dem Eingangswert.
h:=ReplaceRegExpr('\<nr:([0-7]{3})\>', h, '', false);
|
Re: Problem mit RegEx-Ausdruck
Zitat:
Zitat:
Hier mal mein Beispiel (Delphi) ...
Delphi-Quellcode:
Ergebnis: aabb
Result:=ReplaceRegExpr('<nr:([0-7]+[0-7]+[0-7])>', 'aa<nr:124>bb', '', false);
Hier nochmal ein etwas spezielleres Beispiel...
Delphi-Quellcode:
Ergebnis: aabb
var old, new:string;
begin new:='aa<nr:<nr:124>555>bb'; repeat old:=new; new:=ReplaceRegExpr('<nr:([0-7]+[0-7]+[0-7])>', old, '', false); until old = new; Result:=new; end; Gruss Thorsten |
Re: Problem mit RegEx-Ausdruck
Das ist merkwürdig. Kann das Problem etwas mit dem Inputstring zu tun haben?
Der sieht folgendermaßen aus:
Code:
/home/x-user/data/necro/graphics/nr1.png <nr:001>
|
Re: Problem mit RegEx-Ausdruck
:wall: :wall: :wall: :wall: :wall: Ich habe den fehler! Der Ausdruck wird von dem befehl zwar entfernt, aber später im Programm wird diese Änderung dann wieder glöscht! (es steht dort statt einem h ein s, womit der String auf den Anfang zurückgesetzt wird)
Danke für die Hilfe! War wohl etwas spät gestern... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 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