2010-06-26 22 views
1

Je suis nouveau à preg_replace() et j'ai essayé de faire fonctionner cela, je ne pouvais pas ainsi StackOverflow est ma dernière chance.PHP: Preg remplacer la chaîne avec rien

J'ai une chaîne avec quelques-unes:

('pm_IDHERE', 'NameHere');"> 

Je veux qu'il soit remplacé par rien, donc il faudrait 2 wildcards pour NameHere et pm_IDHERE.

Mais je l'ai essayé et moi-même échoué, si quelqu'un pourrait me donner le bon code s'il vous plaît et merci :)

+1

Pouvez-vous montrer ce qui n'a pas fonctionné? C'est presque toujours mieux (pour vous) si quelqu'un peut vous montrer où vous avez mal tourné, donc .. vous comprenez mieux l'expression. Le résultat de la demande du «bon code» sur SO est indéfini. –

+0

Je suis cofused quant à ce dont vous avez besoin. Pouvez-vous donner un exemple de ce que vous faites et de ce qui ne fonctionne pas? Jetez un oeil au manuel PHP pour quelques bons exemples de la façon dont fonctionne preg: http://php.net/manual/fr/function.preg-replace.php – labratmatt

+0

$ str = preg_replace ("# \ ('pm _ (. + ?) ',' (. *?) '); # si "," \ 1 ", $ str); – Joseph

Répondre

3

Mise à jour:

Vous êtes presque là, il vous suffit de faire le remplacement d'une chaîne vide et échapper à la parenthèse correctement, sinon ils seront traités comme groupe de capture (que vous n'avez pas besoin BTW):

$str = preg_replace("#\('pm_.+?', '.*?'\);#si", "", $str); 

vous probablement aussi ne pas besoin des modificateurs s et i mais c'est à vous de décider.


ancienne réponse:

probablement str_replace() suffit:

$str = "Some string that contains pm_IDHERE and NameHere"; 
$str = str_replace(array('pm_IDHERE', 'NameHere'), '', $str); 

Si ce n'est pas ce que vous entendez et pm_IDHERE est en fait quelque chose comme pm_1564 alors oui, vous avez probablement des expressions régulières pour ça. Mais si NameHere n'a pas de modèle ou de structure, vous ne pouvez pas le remplacer par une expression régulière.
Et vous devez absolument expliquer mieux quel genre de chaîne vous avez et quel genre de chaîne vous voulez remplacer.