AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit RegEx-Ausdruck

Ein Thema von argonix · begonnen am 18. Jan 2008 · letzter Beitrag vom 19. Jan 2008
Antwort Antwort
Benutzerbild von argonix
argonix

Registriert seit: 28. Feb 2007
257 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit RegEx-Ausdruck

  Alt 18. Jan 2008, 20:44
Hallo!
Ich habe folgenden RegEx-Ausdruck:
Code:
\<nr:([0-7]+[0-7]+[0-7])\>
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 Kann jemand von euch sagen, warum das nicht funktioniert? Ich befasse mich noch nicht lange mit RegEx.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem mit RegEx-Ausdruck

  Alt 18. Jan 2008, 20:53
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
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Problem mit RegEx-Ausdruck

  Alt 18. Jan 2008, 21:01
Code:
\<nr:([0-7]+[0-7]+[0-7])\>
Heißt: "<nr1 oder mehr ziffern)(1 oder mehr ziffern)(1 ziffer)>"

Was du suchst wäre
Code:
\<nr:([0-7]{3})\>

oder

\<nr:([0-7][0-7][0-7])\>
  Mit Zitat antworten Zitat
Benutzerbild von argonix
argonix

Registriert seit: 28. Feb 2007
257 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Problem mit RegEx-Ausdruck

  Alt 18. Jan 2008, 21:28
Ich benutze TRegExpr und Lazarus unter Linux.
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:
h:=ReplaceRegExpr('\<nr:([0-7]{3})\>', h, '', false); h ist ein String, der den zu bearbeitenden Text enthält. Allerding ist das Ergebnis dieser Funktion immer gleich dem Eingangswert.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Problem mit RegEx-Ausdruck

  Alt 19. Jan 2008, 00:04
Zitat von argonix:
Ich benutze TRegExpr und Lazarus unter Linux.


Zitat von argonix:
getestet: Es funktioniert! Ich benutze folgende Funktion:
h:=ReplaceRegExpr('\<nr:([0-7]{3})\>', h, '', false); h ist ein String, der den zu bearbeitenden Text enthält. Allerding ist das Ergebnis dieser Funktion immer gleich dem Eingangswert.
schade das du da nicht konkreter warst.

Hier mal mein Beispiel (Delphi) ...
Result:=ReplaceRegExpr('<nr:([0-7]+[0-7]+[0-7])>', 'aa<nr:124>bb', '', false); Ergebnis: aabb

Hier nochmal ein etwas spezielleres Beispiel...
Delphi-Quellcode:
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;
Ergebnis: aabb


Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von argonix
argonix

Registriert seit: 28. Feb 2007
257 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Problem mit RegEx-Ausdruck

  Alt 19. Jan 2008, 10:46
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>
  Mit Zitat antworten Zitat
Benutzerbild von argonix
argonix

Registriert seit: 28. Feb 2007
257 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Problem mit RegEx-Ausdruck

  Alt 19. Jan 2008, 12:09
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...
  Mit Zitat antworten Zitat
Antwort Antwort


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