AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit regex

Ein Thema von agm65 · begonnen am 16. Nov 2006 · letzter Beitrag vom 16. Nov 2006
Antwort Antwort
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

Problem mit regex

  Alt 16. Nov 2006, 13:41
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:
if reg.Match then
     begin
     showmessage('true')
else
showmessage('false')
das problem ist jetzt, dass alle strings als true ausgegeben werden weil auch chars von den oben genannten dabei sind.
was kann ich da machen ?
euer Peter Porka
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Problem mit regex

  Alt 16. Nov 2006, 13:43
Setz' das Plus-Zeichen mal in die runde Klammer.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Problem mit regex

  Alt 16. Nov 2006, 13:46
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.
euer Peter Porka
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: Problem mit regex

  Alt 16. Nov 2006, 14:00
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:
reg.RegEx:= '([^0-9a-zA-Z_-]+)'; Wenn jetzt eins der Zeichen drin ist, das NICHT in der Charakterklasse enthalten ist, bekommst du einen Match.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit regex

  Alt 16. Nov 2006, 14:01
reg.RegEx:= '^([0-9a-zA-Z_-]*)$'; EDIT: Das matcht dann, wenn der String deinen Regeln entspricht.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Problem mit regex

  Alt 16. Nov 2006, 14:05
cool, das geht ja wunderbar ! danke dir, das wusste ich garnicht !...vielen dank amigo !
euer Peter Porka
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#7

Re: Problem mit regex

  Alt 16. Nov 2006, 14:06
Welches von beiden hast du jetzt genommen?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Problem mit regex

  Alt 16. Nov 2006, 14:10
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}$",
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Problem mit regex

  Alt 16. Nov 2006, 14:29
Na so:

reg.RegEx:= '^([0-9a-zA-Z_-]{1,20})$'; Eigentlich genauso wie in PHP, die Klammern kannst du IMHO auch weglassen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Problem mit regex

  Alt 16. Nov 2006, 14:42
cool thx
euer Peter Porka
  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 03:34 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