「文字列の置き換えは、Stringオブジェクトのreplace()メソッドで行います。このメソッドは、正規表現のパターンにマッチした文字列を別の文字列に置き換えます。書き方は次のとおりです」
「では、文字列の中からURLを検索し、これをリンク付の文字列に書き換えてみることにしましょう」
「リンクの設定は、次のようにHTMLの<a>タグで設定すればいいですね」
「こんな感じでどうですか」
「たんに単語を置き換えるといったことなら、このような書き方になりますが、文字列を置き換えるときに同じURLを2回も書いているので、コードが長くなっていますね」
「実は、書き換える文字列がパターンマッチした文字列を含んでいる場合は、もっと便利な方法があるんです」
「先にそれを言ってくださいよぉ」
「えーっとですね、まずは置き換えてみてからでないと内容がよく理解できなくなっちゃうんですよ。で、replace()メソッドは内部的にサブマッチ文字列を格納した特殊な変数を持っていて、$1から始まる変数名を指定することでパターンマッチした文字列を取り出すことができるようになっています。例えば、先の例の場合は、次のような値が格納されます」
変数名 | 格納されている値 | |
---|---|---|
$1 | http://www.newsite.example.com/ | |
$2 | undefined | |
$3 | example | |
$4 | / | |
「へー、『$1』って書けば、抽出された文字列を取り出せるんですね」
「1つだけ重要な注意点があります。それは、パターン文字列全体を()で囲むという点です。これを付けることで、変数$1にパターンマッチした文字列全体が格納されるようになります。では、replace()メソッドの変数を使って、先のプログラムを書き換えてみましょうか」
「これで『$1』で文字列全体を取り出せるようにするには、あらかじめパターン文字列全体を()で囲めばいいんですね。では書き換えてみます」
Copyright © ITmedia, Inc. All Rights Reserved.