正規表現を使って「繰り返し」を表現してみよう!
  • facebookページ
  • twitterページ
  • 2018.03.12

    正規表現を使って「繰り返し」を表現してみよう!

    正規表現とは

    プログラミングで文字列処理を行う時に便利な表現を正規表現と言います。正規表現を用いると、たとえば文字の検索が容易に行えます。正規表現は「表現」という言葉のとおり、文字や文字列を、ある規則に従って表現(パターン化)することができるもので、使えるようになると非常に便利で強力なツールとなります。今回は、その正規表現における繰り返し表現を取り上げてみます。

    正規表現での「繰り返し」の書き方

    任意の一文字を繰り返す

    任意の一文字を正規表現では、.(ピリオド)を使って表現します。

    例)
    [正規表現]
    A.bc
    [マッチする例]
    A1bc
    AJbc
    A#bc

    直前の文字の繰り返し(1回以上の繰り返し)

    +(プラス)を使用すると、「1回以上の繰り返し」を表現できます。たとえば任意の一文字の繰り返しを表現するには、.+と書くことで行うことができます。

    例)
    [正規表現]
    A+
    [マッチする例]
    AAA
    AAAAAAA

    直前の文字の繰り返し(0回以上の繰り返し)

    「直前の文字」を表すには、上述で紹介した+(プラス)と(アスタリスク)があります。+の方は、既に紹介しましたが「1回以上の繰り返し」を示しますので、たとえばa+と記述すると、「aが1回以上繰り返す」という意味になります。対して、*(アスタリスク)の方は、「0回以上の繰り返し」を示します。b*と表現すると、「bの0回以上の繰り返し」を表すことが出来ます。

    例)
    [正規表現]
    Ab*
    [マッチする例]
    A
    Ab
    Abbb

    グループ化して複数の文字を繰り返す

    複数の文字をグループ化し対象とするには、()で文字を囲みます。

    例)
    [正規表現]
    (Hello)+
    [マッチする例]
    Hello
    HelloHello
    HelloHelloHello

    任意の文字を繰り返す

    上述した.*+を用いた例を幾つか紹介します。

    1)aとcの間に任意の文字が繰り返す例

    例)
    [正規表現]
    a.+c
    [マッチする例]
    abc
    abbbc
    aOIUc

    2)改行を含めた任意の文字の繰り返し

    任意の文字を示す.は、改行にはマッチしないため、以下のように全ての文字に一致するように書く必要があります。¥dは数字を示し、¥Dは数字以外の文字を示します。これを[]で囲むことで改行もマッチするようになります。

    例)
    [正規表現]
    a[¥d¥D]+b

    最長一致・最短一致

    最長一致・最短一致という表現方法もあります。繰り返した文字や文字列を「*」や「+」を用いて、マッチするだけ全て取得する最長マッチ。これらは、上述してきたものになります。逆に可能な限り短い文字列を得るための表現を最短一致と言います。これには、を使用することで可能です。?は、「0回または、1回の出現」にマッチするので、その習性を利用します。

    例)
    [正規表現]
    a+?
    [マッチする例]
    a
    *対象文字がaaaaaaaaaと、複数のaを連結した文字列だったとしても1つのaにのみマッチします。

    繰り返しの回数を指定する

    回数を指定するには、{}を使用します。以下に幾つかの使用例を紹介します。

    n回繰り返す

    {2}で2回の繰り返しを。{3}で3回の繰り返しというように{}内に数字を入れることで表現できます。

    n回以上繰り返す

    {n,} と表現することで、n回以上の繰り返しにマッチさせることができます。

    例)
    [正規表現]
    [0-9]{3}
    [マッチする例]
    123
    233
    などの3桁の数字にマッチ

    n回以上m回以下繰り返す

    {n, m}と記述することで、マッチさせることができます。

    例)
    [正規表現]
    d{1,4}
    [マッチする例]
    193
    1
    89
    9876

    まとめ

    正規表現は、いろんなパターンを作ることが出来ます。正規表現を使いこなせると、プログラミングやエクセルを使う際に役に立つので、少しずつ覚えていきましょう。自分が必要な正規表現から覚えて、実際に活用してみてくださいね。


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

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

    ポテパンフリーランス

    ポテパンフリーランス

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

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

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



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

    ポテクラバナー ポテプロバナー

    この記事をシェア

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









    ABOUT US

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

    READ MORE