PHP で preg_replace を使用するときに一致を取得するにはどうすればよいですか?
-
08-06-2019 - |
質問
いくつかの単語の大文字を取得して、span タグで囲もうとしています。使っています preg_replace 抽出とラッピングを目的としていますが、何も出力されません。
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
解決
パターンを括弧内に入れる必要があります /([A-Z])/
, 、 このような:
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
他のヒント
\0
また、括弧を使用した明示的なキャプチャを行わずに、一致した式全体と一致します。
preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)
いつものように、次の場所に行くことができます php.net/preg_replace または php.net/<任意の検索語> を使用してドキュメントをすばやく検索します。ドキュメントを引用します。
\0 または $0 は、パターン全体と一致するテキストを指します。
から preg_replace ドキュメント php.net で:
交換 フォーム nまたは(php 4.0.4以降)$ nの参照が含まれている場合があり、後者のフォームが好ましいものです。そのような参照はすべて、n'th括弧付きパターンによってキャプチャされたテキストに置き換えられます。
Flubba の例を参照してください。
目的のキャプチャを括弧で囲みます。
所属していません StackOverflow