「a」で始まり「z」で終わる文字列を置き換えるにはどうすればよいですか?
基本的に、str_replaceと同じことを実行できるようにしたいのですが、「haystack」内の2つの文字列の間の値には無関心です。
このための組み込み関数はありますか?そうでない場合、それを実現する関数を効率的に作成するにはどうすればよいですか?
これは、正規表現(略してRegEx)を使用して実行できます。簡単な例を次に示します。
$string = 'coolAfrackZInLife';
$replacement = 'Stuff';
$result = preg_replace('/A.*Z/', $replacement, $string);
echo $result;
上記の例はcoolStuffInLife
与えられた正規表現についての簡単な説明 /A.*Z/
:
-スラッシュは正規表現の始まりと終わりを示します。
-AとZは、置換する必要のある開始文字と終了文字です。
-.
任意の1文字に一致します
-*
指定された文字の0個以上(この場合は-すべて) -オプションで、間に何かがある場合にのみ一致する 代わりに
使用することができます+
*
正規表現をテストする簡単な方法については、Rubular.comをご覧ください。また、短い正規表現リファレンスも提供します
$string = "I really want to replace aFGHJKz with booo";
$new_string = preg_replace('/a[a-zA-z]+z/', 'boo', $string);
echo $new_string;
正規表現に注意してください。最初のzまたは最後のzを見つけたいですか?間にあるのは文字だけですか?英数字?正規表現を拡張する前に、説明する必要のあるさまざまなシナリオがあります。
preg_replaceを使用して、正規表現パターンを使用できるようにします。