Предупреждение: preg_replace (): Неизвестный модификатор 'g'

80

У меня ошибка этого регулярного выражения ...

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

ошибка

Предупреждение : preg_replace (): Неизвестный модификатор 'g' в ....

Почему?

Фу Линг
источник

Ответы:

163

gподразумевается с preg_replace(). Его не нужно включать.

избавляться
источник
45

Вам не нужно указывать глобальный флаг. В документации есть отдельный параметр ( $limit), который используется для указания количества замен, которые необходимо сделать:

limit Максимально возможные замены для каждого шаблона в каждой строке темы. По умолчанию -1 (без ограничений).

Итак, если вы не укажете положительное число для этого параметра, по умолчанию он заменит все вхождения:

$strTmp = preg_replace('~(<\/CharacterStyleRange>(.*?)\n*</CharacterStyleRange>)~im ' , "</CharacterStyleRange>", $strTmp);
pswg
источник
-2

В /заменяемой строке стоит перед буквой G.

Cparello
источник
это просто вызвало эту ошибку для меня "Glasshouse Images / Getty Images" Я предполагаю, что preg_ видит в этом побег
Cparello