2010-04-12 7 views
0

J'essaye de preg_replace charset=blablabla; et charset=blablabla" avec charset=utf-8; et charset=utf-8". S'il vous plaît voir ;= et " caractères, et bien sûr la chaîne recherchée peut être inférieure/majuscule.regex avec des caractères spéciaux dans php

Pouvez-vous m'aider?

+0

Dans quel contexte ces extraits apparaissent-ils? – Gumbo

Répondre

0

Vous pourriez essayer quelque chose comme ça.

echo preg_replace("#charset=[a-zA-Z0-9]+(\;)?#", "charset=utf-8$1", "charset=sdfsfsds"); 
1

Vous pouvez remplacer la valeur avec quelque chose comme:

$subject = 'Testing... charset=baz; and charset=bat" :-)'; 
echo preg_replace('/(?<=charset=)[a-zA-Z0-9_-]+(?=[;"])/', 'utf-8', $subject); 
// Testing... charset=utf-8; and charset=utf-8" :-) 

déstructurée, les matchs regex:

  • Un point immédiatement après charset= (en utilisant un lookbehind)
  • Une séquence d'un ou de plusieurs caractères alphanumériques, de soulignement ou de tiret (à remplacer)
  • Si elle est suivie d'un caractère point-virgule ou d'un guillemet double
Questions connexes