SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「正規表現と先頭と末尾」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(76)

  • X ポスト
  • このエントリーをはてなブックマークに追加

解説

 正規表現は文字列のパターンを表現する方法です。検索や置換で用いられて、複雑な条件で文字列に一致させることが可能です。正規表現では、メタ文字、メタキャラクターと呼ばれる記号を使い、文字を抽象化して出現パターンを記します。

 この正規表現は、多くのプログラミング言語や、テキストエディタで利用できます。使用するプログラミング言語などの環境によって、微妙に仕様が違うので、使用前に確認が必要です。本記事では、JavaScriptの正規表現を中心に扱います(他のプログラミング言語の正規表現も、大きな差はありません)。

 今回は、その正規表現の中から、先頭を表すメタ文字「^」と、末尾を表すメタ文字「$」を紹介します。

^    文字列の先頭    「^~」のように指定
$    文字列の末尾    「~$」のように指定
例)
console.log("http://crocro.com/".replace(/^http/, "@"));
console.log("C:\\hoge\\hoge.txt".replace(/\.txt$/, "@"));
出力)
@://crocro.com/
C:\hoge\hoge@

 これらの記号は、文字列全体の先頭と末尾が対象になります。しかし、長い文章では、各行の先頭と末尾を対象にしたい時もあります。その際はmフラグを設定します。このmは、multilineの意味です。

例)
console.log(
    ("http://crocro.com/hoge.html\n"
    +"http://crocro.com/pic1.jpg\n"
    +"http://crocro.com/pic2.jpg\n"
    +"http://crocro.com/hoge.json")
    .match(/[^/]+?$/mg)
);
出力)
["hoge.html", "pic1.jpg", "pic2.jpg", "hoge.json"]

サンプル

 正規表現で「先頭と末尾の一致」を利用したコードを、JavaScriptで簡単に書いてみます。

<html>
    <head>
        <title>「先頭と末尾の一致」のサンプル</title>
    </head>
    <body>
        <pre><script type="text/javascript">
            var str =
                  "=====注目=====\n"
                + "大売り出しセール実施中!!!!!\n"
                + "#####今すぐテンポにGoだ!!#####\n"
                + "http://hoge.com//#!sale\n"

            // 先頭の記号を除去
            str = str.replace(/^[=!#]+/mg, "");
            document.writeln("先頭の記号を除去 : \n" + str + "\n");

            // 末尾の記号を除去
            str = str.replace(/[=!#]+$/mg, "");
            document.writeln("末尾の記号を除去 : \n" + str + "\n");
        </script></pre>
    </body>
</html>
出力結果)
先頭の記号を除去 : 
注目=====
大売り出しセール実施中!!!!!
今すぐテンポにGoだ!!#####
http://hoge.com//#!sale


末尾の記号を除去 : 
注目
大売り出しセール実施中
今すぐテンポにGoだ
http://hoge.com//#!sale
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8495 2015/03/24 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング