Advertencia: preg_replace (): modificador desconocido 'g'

80

Recibí un error con esta expresión regular ...

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

Error

Advertencia : preg_replace (): Modificador desconocido 'g' en ....

¿Por qué?

Foo Ling
fuente

Respuestas:

163

gestá implícito con preg_replace(). No es necesario incluirlo.

eliminar
fuente
45

No tiene que especificar la bandera global. De la documentación , hay un parámetro separado ( $limit) que se usa para especificar el número de reemplazos a realizar:

límite El máximo de reemplazos posibles para cada patrón en cada cadena de tema. El valor predeterminado es -1 (sin límite).

Entonces, a menos que especifique un número positivo para este parámetro, reemplazará todas las ocurrencias por defecto:

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
pswg
fuente
-2

Hay una /antes de la letra G en la cadena que está reemplazando.

Cparello
fuente
esto acaba de arrojarme ese error "Glasshouse Images / Getty Images" Supongo que preg_ ve eso como un carácter de escape
Cparello