正規表現 -タグの変換-

既存タグ: <font color=”blue”>test</font>

生成タグ: <span style=”color:$1;”>test</span>

※ $1はキャプチャされた文字列が入る

 H:\正規表現入門(1) – 正規表現を使ってみよう  アシアルブログ.mht

まず、fontタグを検索して、置換後も引き継ぎたい文字列を保持しておきます
(上の例では、「blue」と「test」)。文字列を保持しておくことを、「キャプチャ」といいます。検索とキャプチャには、以下のような正規表現が使えます。

<font color=”(.+)”>(.+)</font>

次に、置換用の文字列を用意します。

<span style=”color:$1″>$2</span>
$1、$2というのは、キャプチャされた文字列の入る場所です。$1には「blue」、$2には「test」が入ります。

<font color=”(…)“>test</font>
※マッチした部分の値を取得するには、()(カッコ)でキャプチャを取ります。

(…)とすれば、任意の3文字をキャプチャします。
キャプチャされた文字列は、$1、$2といった「$ + 連番の数字」という名前の変数(容れ物)に格納されます。
この変数を置換後の文字列に配置すれば、キャプチャした文字列を展開することができます。

<font color=(.+)>(.+)</font>

•任意の1文字を表す.(ドット)

•1文字以上の繰り返しを表す+(プラス)

•文字列をキャプチャする()(カッコ
<font.+color=”([^”]*)[^>]*>([^<]*)</font>

[^>]*は、「>以外の文字の0個以上の繰り返し」という意味。
たとえば、<br>と<br />と<br/>。バラバラなとき、置換文字列をいずれかのパターンのbrタグにしてやれば、簡単に検索・置換を行えます。

This entry was posted in PHP.

About

You may also like...

Your email will not be published. Name and Email fields are required