PHP で preg_replace を使用するときに一致を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1746

質問

いくつかの単語の大文字を取得して、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 の例を参照してください。

目的のキャプチャを括弧で囲みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top