Regex probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • FireFoz
  • Registratie: Juni 2001
  • Laatst online: 18-06 08:40
Ik kom er echt niet uit. Zit al uren te klooien maar het lukt maar niet. Ik ben al lang blij dat de rest werkt, maar dit ene stukje lukt niet.

Ik heb een reguliere expressie:

code:
1
ereg("[^\.0-9a-zA-Z, ]


die .0-9a-zA-Z, als tekens moet toestaan, en anders een error moet geven. Dit werkt prima. Nou wil ik tot de toegestane karakters een "-" toevoegen (zonder " dus :p), maar dit lukt dus op geen enkele manier. escapen helpt niet, niks. Weet iemenad hoe ik deze kan toevoegen :?

Zal wel rete simpel zijn maar ik zie het niet...;(

code:
1
ereg("[^\-\.0-9a-zA-Z, ]

geeft iig een error...zonder \ ook

code:
1
ereg("[^\.0-9a-zA-Z, ][\-]


niet, maar dan geeft ie nooit een error, ook al zet ik er 2#&*$&*$#@ in :p

Leef lekker in het nu, er is niks anders


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 19-09 22:02

krvabo

MATERIALISE!

Nja ik wil niet heel vervelend doen, maar
code:
1
[^\.0-9a-zA-Z, \-]
werkt hier prachtig :?
Het is dus hetzelfde als je zelf al geeft
code:
1
[^\-\.0-9a-zA-Z, ]


Dit is gewoon getest in The Regex Coach http://weitz.de/regex-coach/

[ Voor 18% gewijzigd door krvabo op 14-12-2007 23:15 ]

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

Verwijderd

Dubbele backslash eventueel? Eentje als escape character voor de PHP string, eentje voor de punt (.).

Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 22-09 17:24

DataGhost

iPL dev

Volgens mij hoef je hem zelfs niet te escapen, zeker niet op het eind. Ik gebruik vaak zat iets als [0-9a-zA-Z-] en dat werkt perfect. Het zou wellicht helpen als je de precieze error liet zien.

Acties:
  • 0 Henk 'm!

  • FireFoz
  • Registratie: Juni 2001
  • Laatst online: 18-06 08:40
wtf...nou werkt ie hier ook
lol
blijkbaar heb ik me blind zitten staren op iets want ik heb hem net gecopy-paste vanaf hier en toen deed ie het wel :?

denk dat ik de spatie er niet in had zitten (en wel in de string)
doh...

sorry!

Leef lekker in het nu, er is niks anders


Acties:
  • 0 Henk 'm!

Verwijderd

DataGhost schreef op vrijdag 14 december 2007 @ 23:15:
Volgens mij hoef je hem zelfs niet te escapen, zeker niet op het eind. Ik gebruik vaak zat iets als [0-9a-zA-Z-] en dat werkt perfect. Het zou wellicht helpen als je de precieze error liet zien.
De punt zonder escape character ervoor word gezien als "ieder willekeurig teken". En aangezien het een PHP string is, moet je ook het escape character escapen.

Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
Om een min-teken '-' op te nemen in een character class, dient deze direct na de haak openen '[' of direct voor de haak sluiten ']' te komen. Escape is niet nodig.

[A-Z-]
[-A-Z]

Om een punt '.' op te nemen een een character class, hoeft deze NIET van een escape te worden voorzien.

[.] matcht dus op een letterlijke punt '.'

Acties:
  • 0 Henk 'm!

  • rogierslag
  • Registratie: Maart 2005
  • Laatst online: 14-10-2024
maar als je de [] haken weglaat wordt diezelfde punt wel voorzien van een escape. Het is dus óf
code:
1
\.
óf
code:
1
[.]


offtopic:
en dit is ook meteen het korste berichtje wat ik ooit heb gepost :p
Pagina: 1