![]() |
Problem mit regex
hi leute, habe folgendes problem.
ich möchte meinen string nach bestimmten chars durchsuchen das mache ich so:
Delphi-Quellcode:
reg.Subject:= vid;
reg.RegEx:= '([0-9a-zA-Z_-])+'; jetzt möchte ich aber wenn ein string ein zeichen hat, was ich nicht angegeben habe, diesen als fehler anzeigen.
Delphi-Quellcode:
das problem ist jetzt, dass alle strings als true ausgegeben werden weil auch chars von den oben genannten dabei sind.
if reg.Match then
begin showmessage('true') else showmessage('false') was kann ich da machen ? |
Re: Problem mit regex
Setz' das Plus-Zeichen mal in die runde Klammer. ;-)
|
Re: Problem mit regex
habe ich, mit dem gleichen ergebnis...
wie gesagt: string1: $1245 string2: ah45 beide true weil ja beide auch "gewollte" zeichen enthalten. string1: sollte false sein. |
Re: Problem mit regex
Du suchst ja nach dem, was drin sein soll, obwohl du eigentlich wissen willst, ob etwas drin ist, das nicht drin sein soll, richtig?
Dann kannst du die Charakterklasse einfach negieren. Das müsste (je nach Dialekt) ungefähr so gehen:
Delphi-Quellcode:
Wenn jetzt eins der Zeichen drin ist, das NICHT in der Charakterklasse enthalten ist, bekommst du einen Match.
reg.RegEx:= '([^0-9a-zA-Z_-]+)';
|
Re: Problem mit regex
Delphi-Quellcode:
EDIT: Das matcht dann, wenn der String deinen Regeln entspricht.
reg.RegEx:= '^([0-9a-zA-Z_-]*)$';
|
Re: Problem mit regex
cool, das geht ja wunderbar ! danke dir, das wusste ich garnicht !...vielen dank amigo ;) !
|
Re: Problem mit regex
Welches von beiden hast du jetzt genommen? :mrgreen:
|
Re: Problem mit regex
es gehen beide :) ! aber damit mein code so stimmt wie er ist, habe ich
reg.RegEx:= '^([0-9a-zA-Z_-]*)$'; genommen, dann muss ich nichts umdrehen.. wie kann ich jetzt noch sagen von char 1,20 ? also in php so: eregi("^[a-z0-9_-]{1,20}$", |
Re: Problem mit regex
Na so:
Delphi-Quellcode:
Eigentlich genauso wie in PHP, die Klammern kannst du IMHO auch weglassen.
reg.RegEx:= '^([0-9a-zA-Z_-]{1,20})$';
|
Re: Problem mit regex
cool thx
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 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