
あきぞらです。
Google App Scriptを使っていて、
正規表現で条件にマッチした文字列を取得したい場面がありました。
今回は、その方法について紹介していきます。
match関数を使って正規表現を使用する
たとえば、こんなHTMLがあったとします。
<p>氏名:秋空</p> <p>ふりがな:あきぞら</p> <p>性別:男</p> <p>電話番号:XXX-XXXX-XXXX</p>
ここから、GASで例えば「氏名」を取得したい場合があったときに、
GASでは以下のように取得してくるようにしました。
上のHTMLのテキストがbodyという変数に入っていた場合、
以下のように処理を書いてあげることで、取得することができます。
var name = body.match(/氏名:(.*?)<\/p>/im)[1] // ログ出力して確認すると取得できている Logger.log(name)
特殊文字に気を付けてエスケープする
「氏名:」の部分と、「</p>」の間にある文字列を取得してきています。
「</p>」 の「/」が囲い文字として読み込まれないように、
バックスラッシュ「\」を入れてエスケープしています。
「?」を入れることで、一番初めにマッチしたものを取得することができます!
前後の文字に気をつけることで、すぐに応用できます!