2013-09-27 12 views
41

私は、この正規表現でエラーが発生しました。..警告:にpreg_replace():未知の修飾子 'G'

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

エラー

警告:にpreg_replace():未知の修飾子 'G' ...

なぜですか?

答えて

106

gは暗黙的にpreg_replace()ですが、それを含める必要はありません。

30

グローバルフラグを指定する必要はありません。

限界各対象文字列の各パターンについて
可能な最大置換:documentationから、作るために置換の数を指定するために使用される別のパラメータ($limit)があります。デフォルトは-1(制限なし)です。だから、

あなたはこのパラメータに正の数を指定しない限り、それはデフォルトですべての発生を置き換えます:

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