str_replace と preg_relace の使用法と違いについてのいくつかの考え

2 つの PHP システム関数 str_replace と preg_relace は、両方とも「置換」に使用される関数です。str_replace は主に文字列の置換に使用され、preg_relace は、名前が示すとおり、正規表現の置換に使用されます。この記事では、それらの具体的な使用法と違いを説明します。例。

str_replaceの使用法

1. 文字列置換。
たとえば、変数a = 'sina, sohu, ityang'、これが必要です。 a='sina、sohu、ityang'、これが必要です。ある=_ _ _ _それで、あなた_ _それ' _ _ _ _この文字列 aの sina を qq に置き換えて、次のように str_replace 関数を使用したいと考えています

$a = str_replace('sina','qq',$a);

このようにして交換は成功です。最初のパラメータは検索する文字列、2 番目のパラメータは置換する文字列、3 番目のパラメータは出力する変数です。

2. str_replace を配列形式
または変数 $a='sina,sohu,ityang' に置き換えます。sina を qq に、sohu を google に置き換えたいので、str_replace 関数を使用します。

$a = str_replace(array('sina','sohu'),array('qq','google'),$a);

このようにして、2 つの異なる文字列が同時に置換されます。この使用法は非常に便利です。最初のケースとの違いは、配列を使用して複数の置換要件を同時に処理できることです。これは配列イメージ置換と呼ばれます。
注: str_replace では通常の置換はできません。

preg_relace 正規表現置換

1. 一致結果を使用する必要はありません。
たとえば、文字列a = ' ityang − 66 ' があります。この文字列には多くの形式が考えられます。a='ityang-66' の場合もあります。多くの形式があります。ある=それだめ_6 6 ' この文字列に多くの形式がある可能性があり a='ityang-26'、'ityang-38'、'ityang-99' の場合もありますが、それらにはすべて 1 つの特徴があります。' ityang-' の後には次の文字が続きますこのとき、照合には正規表現を使用する必要があります。
次の数字を文字「nums」に置き換えたい場合はどうすればよいですか? 次のコードを見てください。

$a = preg_replace('/ityang-([0-9]+)/','nums',$a);

最初のパラメータは正規表現で、「//」内の内容は正規表現を表します。ここでは正規表現の意味と使用法については詳しく説明しません。ここで一致するのは、先頭の文字列の意味です。 ityang- の後に数字が続き、括弧内は一致結果であり、複数の括弧が存在する可能性があり、それは異なる一致グループであり、2 番目のパラメータは置き換えるもの、3 番目のパラメータは出力する変数です。

2. 一致結果を使用する必要があるケースは
、やはり最初のケースの例です。数字を文字「nums」に置き換えるのではなく、数字の後に文字列「-list」を追加します。つまり、「」 ityang-1" は "ityang-1-list" になります。このとき、マッチング結果を使用する必要があります。

$a = preg_replace('/ityang-([0-9]+)/','ityang-${1}-list',$a);

2 番目のパラメータ ${1} は、正規表現の照合の結果です。1 は、最初の括弧内にあるものを意味します。ここには括弧が 1 つだけあり、以下同様です。
これは、str_replace 置換関数と preg_relace 通常置換関数の基本的な使用法です。基本的な使用法をマスターすると、柔軟に使用して多くの問題に対処できます。これら 2 つの関数は、文字列を処理するための非常に一般的な関数であり、非常に強力です。

{preg_replace("/[0-9]/","*",$t.content)}

コンテンツ欄の数字をすべて「*」に置き換えてください。これは私が現在使用している cms の置き換え例です。無視しないでください。ただメモをとっているだけです!

おすすめ

転載: blog.csdn.net/likeni1314/article/details/88323149