[PHP] eregi_replace

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik krijg het maar niet aan de gang:

Ik zit met een hoop documenten waarin de volgende text kan voorkomen:

RFC 1234
RFC1234
RFC-1234

Nu heb ik de volgende regex gemaakt maar deze reageerd dus ook op op het woordje RFC alleen.

$file = eregi_replace("(rfc[-,\040,#]?)([0-9]*)", "<a href=\"viewrfc.php?rfc=\\2\">\\0</a>", $file);

Weet iemand hier een oplossing voor?

Acties:
  • 0 Henk 'm!

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op maandag 25 juli 2005 @ 02:37:
$file = eregi_replace("(rfc[-,\040,#]?)([0-9]*)", "<a href=\"viewrfc.php?rfc=\\2\">\\0</a>", $file);

Weet iemand hier een oplossing voor?
Met deze zou het moeten werken:
code:
1
(rfc[-,\040,#]?[0-9]+)


Jouw * matched 0 of meer cijfers 0-9. Met + match je 1 of meer cijfers 0-9.

Je ? zou ik een * van maken. Dan worden 2 spaties ook nog gematched.

(Met dank aan de 'The regex Coach')

[ Voor 10% gewijzigd door Coen Rosdorff op 25-07-2005 03:31 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verder mogen die komma's weg uit die character class. Je hoeft waardes in zo'n char class niet te scheiden met komma's, aangezien je in dit geval dan ook rfc,234 matcht. Bovendien kun je in een character class ook gewoon een " " (spatie) gebruiken. ;)
code:
1
(rfc[- ]*[0-9]+)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.