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é?

Respuestas:


163

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


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);

-2

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


esto acaba de arrojarme ese error "Glasshouse Images / Getty Images" Supongo que preg_ ve eso como un carácter de escape
Cparello
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.