PHP preg_replace en percent teken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 164730

Topicstarter
Met een regex wil ik alle karakters vervangen die niet alfanumeriek zijn en ook het percent teken wil ik behouden.

Mijn regex zou er dan zo moeten uitzien: /[^a-zA-Z0-9%]/u

Met de Dreamweaver regex zoekfunctie blijkt dit te werken. Als ik deze regex gebruik in de PHP preg_replace functie, dan loopt het mis. De regex breekt en wordt niet meer uitgevoerd.

Heeft iemand een idee hoe ik dit kan aanpassen volgens de PHP interpretatie ?

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Laatst online: 16:21
Je moet het % teken volgens mij escapen.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20-07 23:07

Creepy

Tactical Espionage Splatterer

"Breekt".. wat bedoel je daar precies mee? Krijg je een foutmelding? Zo ja welke?

@jbdeiman. Volgens http://www.php.net/manual...erence.squarebrackets.php kan je % prima gebruiken tussen [ en ] zonder te escapen

[ Voor 47% gewijzigd door Creepy op 09-03-2010 10:57 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

De regex breekt en wordt niet meer uitgevoerd.
Hoor je wat kraken in je server dan? 8)7 Krijg je een foutmelding of werkt het gewoon niet? Laat eens wat strings zien van voor en na het uitvoeren van preg_replace().
jbdeiman schreef op dinsdag 09 maart 2010 @ 10:47:
Je moet het % teken volgens mij escapen.
Volgens mij niet.

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Het werkt gewoon hoor in PHP:

PHP:
1
2
3
4
5
6
$string = 'Mr 10% Zardari *';
$pattern = '/[^a-zA-Z0-9%]/u';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);

// Uitvoer: Mr10%Zardari


Wat ook werkt is /[^\w%]/ .

Acties:
  • 0 Henk 'm!

Anoniem: 164730

Topicstarter
Ik heb het probleem gevonden. De regex werkt inderdaad.

Het bleek om een typfoutje te gaan in mijn preg_replace regex. Lang op zitten staren en steeds over het hoofd gezien. :D
Pagina: 1