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