web-dev-qa-db-fra.com

Attention: preg_replace (): modificateur inconnu 'g'

J'ai une erreur de cette regex ..

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~gim ' , "</CharacterStyleRange>", $strTmp);

erreur

Attention: preg_replace (): modificateur inconnu 'g' dans ....

pourquoi?

54
Foo Ling

g est implicite avec preg_replace(), vous n'avez pas besoin de l'inclure.

129
rid

Vous n'avez pas à spécifier l'indicateur global. Dans documentation , il existe un paramètre distinct ($limit) utilisé pour spécifier le nombre de remplacements à effectuer:

limite
Nombre maximal de remplacements possibles pour chaque modèle dans chaque chaîne de sujet. La valeur par défaut est -1 (aucune limite).

Donc, sauf si vous spécifiez un nombre positif pour ce paramètre, toutes les occurrences seront remplacées par défaut:

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
35
p.s.w.g

il y a un/avant une lettre G dans la chaîne que vous remplacez

0
Cparello