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


80

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

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

ошибка

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

Почему?

Ответы:



45

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

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

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

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

-2

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


это просто вызвало эту ошибку для меня "Glasshouse Images / Getty Images" Я предполагаю, что preg_ видит в этом побег
Cparello
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.