【Ruby入門】Rubyの正規表現
  • facebookページ
  • twitterページ
  • 2017.12.04

    【Ruby入門】Rubyの正規表現

    以下2記事で、正規表現による検索と置換を解説しました。

    本記事では、上記で解説した内容を Rubyのソースコード上で実装してみます。

    上記の2記事で学んだことが理解できていれば、見た目は難しいですが理解できるはずです。

    忘れていたとしても、上記2記事を見返せば大丈夫ですよ!

    正規表現の基本を確認

    文字列を生成する場合、ダブルクウォーテーション「”」で囲いました。正規表現の場合、今度はスラッシュ「/」で囲います。

    単純に含まれるかどうかだけ =~

    単純にマッチするものがあるかどうかを確認するだけなら、=~で対応できます。

    [実行結果]

    ちなみに、if文の条件式は何を返しているのでしょうか?trueでしょうか、falseでしょうか?

    単純にそこだけ出力してみましょう。

    [実行結果]

    先頭をゼロとして考えると4、つまりマッチした箇所の開始位置を返しています。

    Rubyの世界ではnilとfalseだけが偽なので、先のif文が成立するというわけです。

    subを使う

    今度はsubを使って置換してみましょう。

    [実行結果]

    簡単ですね。置換できました。

    さらにsubが便利なのは、ブロックを受け取ることができます。

    先の例で、マッチした部分を大文字にしてみましょう。

    [実行結果]

    大文字にできました。

    gsubを使う

    subはマッチした最初の箇所だけ置換します。それに対してgsubは、マッチした全ての箇所を変換します。

    [実行結果]

    両者を比較すると、違いがよくわかりますね。

    オプションを使う

    オプションを使って、大文字小文字を区別せず変換してみましょう。

    [実行結果]

    オプションがない場合は大文字小文字が区別されて、最後のabcだけしか置換されませんでした。

    一方オプションがある場合は、大文字小文字が区別されず置換されました。

    オプションをまとめておきます。

    scanを使う

    今度はscanを使って、先頭から走査してマッチしたものを全て出してみましょう。

    [実行結果]

    aとcの間に1文字が挟まれているものをすべて抽出できました。

    結果にもうちょっとひねりを加えて、結果を配列に格納してみましょう。

    [実行結果]

    配列に格納することができました。

    郵便番号をRubyで!

    今までの記事ででてきた郵便番号ネタを、Rubyで実装してみましょう!

    データは配列に入ったものを対象としていますが、ファイルから読み込むなどなど応用を利かしてみてください。

    郵便番号でないものをあぶりだす!

    実行結果

    郵便番号のハイフンを消す

    実行結果

    Ruby特有!名前付きキャプチャ

    上記の例では、1つめのカッコが$1で2つめのカッコが$2で、という決め事がありました。

    しかしRubyでは、名前付きキャプチャというものがあります。HTMLのタグのようなもので名前をつけることができます。

    順番を追うことなく判別できるので、プログラム修正で仕様が変わって、カッコが増減しても大丈夫です。

    まとめ

    今まで解説してきた手法を、Rubyで実装しました。

    前2記事と本解説を合わせて、Rubyで正規表現を扱えるようにがんばってくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE