特定のタグに囲まれた中身を残したまま、タグだけを置換したい件

2017年6月7日水曜日

WEB備忘録

t f B! P L


ちょっとタイトルの意味が分かりにくいと思うので、サンプルを…。

例えば、こんな記述があったとします。
<p>あいうえお</p>
<p>かきくけこ</p>
<p>さしすせそ</p>
<p>たちつてと</p>
<p>なにぬねの</p>
こんな単純ではないのですが、サンプルという事でご理解ください。

例えば、この<p>~</p>に囲まれた、つまり、「あいうえお」とかの部分ですね。

この中身は残したまま、<p></p>を<div></div>に変更するという事です。

単純に、<p>と</p>を<div>と</div>に置換したらいいじゃん!と思われますが、そうしてしまうと他の内容にも影響が出てしまうという前提ですのでご了承ください!

サンプルは分かりにくいですが、今回のポイントは「指定したタグ内の内容は残す」という事です。

複雑な文字列や英文などになると、更に複雑になってくるので指定個所を残すという考えは以外と重要になります。

この場合、後方参照で置換を行います、正規表現ですね。

具体的には以下の通りです。
<p>([^<]*)</p>
まず、置換対象を上記のように指定します、これは()内の何かは残すを指定します。キャッシュされるという言い方が良いのでしょうかね?

続いて、今度は置換後の指示を指定します。
<div>\1</div>
¥1の指定で、キャッシュした内容を呼び出す指定です。

これで、指定した間の内容は保持されたまま、その前後のタグが置換されます。

()でキャッシュする数や内容を細かく指定することで、複雑な置換も可能になります。

なお、複数増える場合には¥2、¥3、¥4と指定することで複数個所での変更が可能になります!

詳説 正規表現 第3版

翻訳:株式会社ロングテール , 他
参考価格:¥ 5,184
価格:¥5,184
OFF : ()

このブログを検索

Twitter