2011-07-18 9 views

答えて

86

preg_replaceのオプションの四番目のパラメータはlimitです:

preg_replace($search, $replace, $subject, 1); 
+0

私は最後から始まる最初の試合だけを交換する必要がある場合、yor答えをありがとう?コードは何でしょうか? –

+2

@josesanchez文字列が長すぎない場合は、strrevを使用して文字列を反転し、このトリックを使用して検索するパターンの逆を検索し、文字列を再度逆にすることができます。非常に長い場合は、文字列を2回反転するオーバーヘッドを避けるために逆方向にスキャンすることをお勧めします。 – Paulpro

8

あなたはこのためにpreg_replacelimit引数を使用して1に設定することができますので、最大1つの置換処理が行われます。

$new = preg_replace('/aaa/','replacement',$input,1); 
0

たとえば、$ contentは次のとおりです。

START 
FIRST AAA 
SECOND AAA 

1)あなたが使用している場合:

$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content); 

それは最初から最後AAAにすべてを変えるだろうし、あなたの結果は次のようになります。

REPLACED_STRING 

2)あなたが使用している場合:

$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content); 

結果は次のようになります。

REPLACED_STRING 
SECOND AAA 
+0

これはどうして起こりますか?関して "?"。 – user111671

関連する問題