preg_filterは、パターンが入力文字列と一致し、一致する部分を置き換える正規表現関数です。他の正規表現関数とは異なり、 preg_filterは、 preg_matchのようなコンテンツを一致させるのではなく、交換された結果を返します。
<span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$replacement</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>);
</span></span>$パターン:正規表現パターン。
$の交換:交換された文字列。
$件名:操作が必要な文字列または配列。
機能:機能:
爆発は、指定されたセパレーターに従って文字列を部分に分割するために使用されます。それは配列を返し、各要素はスプリットサブストリングです。
<span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-variable">$delimiter</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span></span>$ delimiter :delimiter。
$文字列:分割する文字列。
実際の開発では、 preg_filterとExploit関数の組み合わせで使用されるシナリオは、主に文字列のセグメント化に焦点を当て、正規表現を使用して不要な部分をフィルタリングまたは交換します。以下は、いくつかの一般的なアプリケーションシナリオです。
さまざまなシンボル(コンマ、セミコロンなど)で区切られた文字列があり、その無効な部分を削除して配列に分割したいとします。この時点で、最初にpreg_filterを使用して不要な部分を除外し、次にエクスプロイト関数を使用して分割できます。
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"apple, ,banana;,,orange;grape"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\s*[,;]\s*/'</span></span><span>; </span><span><span class="hljs-comment">// 正規表現は、不必要なセパレーターを削除します</span></span><span>
</span><span><span class="hljs-comment">// 使用preg_filterスペースと冗長セパレーターをきれいにします</span></span><span>
</span><span><span class="hljs-variable">$cleanedString</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-string">','</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-variable">$items</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">','</span></span><span>, </span><span><span class="hljs-variable">$cleanedString</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>);
</span></span>出力結果:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => orange
[</span><span><span class="hljs-number">3</span></span><span>] => grape
)
</span></span>この例では、 preg_filterは最初に、ひもから不必要なスペースと冗長セパレーター(複数のコンマやセミコロンなど)を除去し、次にエクスプロイトを通じてクリーンな文字列を配列に分割します。
複雑なパターンで分割する必要がある場合があります。 preg_filterを使用して、文字列を前処理してから、単純な分割にエクスプロイトを使用できます。この方法は、いくつかの複雑な文字列形式に非常に適しています。
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"item1:apple, item2:banana; item3:orange"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/[;\s]+/'</span></span><span>; </span><span><span class="hljs-comment">// セミコロンまたは空白の文字を一致させます</span></span><span>
</span><span><span class="hljs-comment">// 使用preg_filter不要なスペースとセパレーターを削除します</span></span><span>
</span><span><span class="hljs-variable">$cleanedString</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-variable">$items</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$cleanedString</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>);
</span></span>出力結果:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-attr">item1</span></span><span>:apple
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-attr">item2</span></span><span>:banana
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-attr">item3</span></span><span>:orange
)
</span></span>ここでは、 preg_filterを使用して、区切り文字(セミコロンや白体文字など)をスペースに置き換え、次にエクスプロイト関数を通じて区切り文字としてスペースのある配列に文字列を分割します。
preg_filterとエクスプロイト関数を組み合わせることにより、定期的な試合への複数の呼び出しを避けながら、文字列を処理するときに正規表現の力を完全に利用できます。このアプローチの利点の一部は次のとおりです。
データのクリーンアップ: preg_filterを使用して不要な部品を除外し、不規則な文字やフォーマットエラーの影響を減らします。
読みやすさの向上:コードは簡潔で、ロジックは明確です。最初にデータをクリーニングしてから分割します。これはより直感的です。
効率の向上:場合によっては、複数の通常の操作が回避され、処理速度が向上します。
preg_filterとExploit関数を使用すると、開発者が複雑な文字列と配列データをより効率的に処理するのに役立ちます。正規表現の強力な機能を通じて、データを処理するプロセス中に余分な部品を除外し、分割データがよりクリーンで効果的であることを保証できます。これら2つの組み合わせをマスターすると、PHP開発のための強力なデータ処理機能が提供されます。
関連タグ:
explode