【C#入門】正規表現の使い方総まとめ(Match/Matches/Replace)

こんにちは!エンジニアの中沢です。

C#には文字列のパターンを指定して検索するための「正規表現」が利用できます。正規表現でパターンを指定すれば任意の文字列を検索する、書き換えるなどができるので、上手く活用してください。

この記事では、

  • 正規表現とは
  • IsMatchメソッドでパターンに一致するか判定する方法
  • Matchメソッドで最初に一致した部分を抽出する方法
  • Matchesメソッドで一致したすべての部分を抽出する方法
  • という基本的な内容から、

  • Replaceメソッドで置換する方法
  • などの応用的な使い方に関しても解説していきます。

    正規表現とは

    正規表現とはいくつかの文字列のパターン一つの形式でまとめて表現するための表現方法のことです。

    主な正規表現については次の表のとおりになります。

    記号記号の説明例の説明
    .任意の1文字。改行文字は除く。.+任意の文字列
    *直前の1文字の0回以上の繰り返しと一致hoge*hogeもしくはhogee...と一致
    ^行の先頭^[0-9]行頭が数字
    $行の末尾^.{10}$10文字の行
    [ ]カッコ内の任意の1文字と一致。「-」で範囲指定可。[a-z]小文字のアルファベット1文字と一致
    [^ ]カッコ内の任意の1文字と不一致。「-」で範囲指定可。[^A-Z]大文字のアルファベット以外
    +直前の文字の1個以上の繰り返しと一致hoge+hogee...と一致
    ?直前の文字の0または1文字と一致hoge?eと一致
    { }カッコ内の数値の繰り返しと一致{n}直前の文字のn個の繰り返しと一致
    {,n}直前の文字のn個以下の繰り返しと一致
    {m,}直前の文字のm個以上の繰り返しと一致
    {m,n}直前の文字のm個以上、n個以下の繰り返しと一致
    |直前、直後どちらかのパターンに一致hoge|piyohogeまたはpiyo
    ( )カッコ内をグループ化。マッチした内容は参照可。

    IsMatchメソッドでパターンに一致するか判定する

    ここでは、IsMatchメソッドでパターンに一致するか判定する方法を解説します。

    IsMatchメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。次のプログラムで確認してみましょう。

    実行結果:

    このようにして指定したパターンが含まれるかどうかを判定することができました。

    抽出する方法

    Matchメソッドで最初に一致した部分を抽出

    ここでは、Matchメソッド最初に一致した部分を抽出する方法を解説します。Matchメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。

    Matchメソッドは検索対象の文字列の中に一致する部分に複数あった場合でも、最初に一致した文字列だけを返すので注意してください。

    次のプログラムで確認してみましょう。

    実行結果:

    このプログラムでは、0~9のいずれかの数字に一致するパターンの「[0-9]」を指定しています。

    この実行結果のように、初めに現れる数値の「1」にマッチするため抽出することができます。

    Matchesメソッドで一致したすべての部分を抽出

    ここでは、Matchesメソッドで一致したすべての部分を抽出する方法を解説します。Matchesメソッドは指定したパターンに一致したすべての文字列を抽出するために使います。

    Matchesメソッドは第1引数に検索対象の文字列を指定し、第2引数に正規表現のパターンを指定します。

    次のプログラムで確認してみましょう。

    実行結果:

    このプログラムでは、検索対象の文字列からすべての数値を抽出しています。

    抽出する方法についてはこちらの記事で詳しく解説しているので、ぜひ確認してください。

    【C#入門】正規表現でパターンに一致する文字列を抽出(Match/Matches)
    更新日 : 2018年5月23日

    Replaceメソッドで置換する方法

    ここでは、Replaceメソッドで置換する方法を解説します。

    Replaceメソッドは第1引数に検索対象の文字列を指定し、第2引数に置換後の文字列を指定します。次のプログラムで確認してみましょう。

    実行結果:

    このようにして指定した文字列を置換することができました。

    Replaceメソッドの詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

    【C#入門】正規表現でパターンに一致する文字列を置換(Replace)
    更新日 : 2018年5月23日

    まとめ

    いかがでしたか?

    今回は正規表現でパターンを指定して検索する方法を解説しました。

    正規表現を使って任意のパターンを抽出したり、置換することができるので、ぜひ活用してくださいね。もし、正規表現の使い方を忘れてしまったらこの記事を確認してください!

    最短でプログラミングを習得したい方へ

    元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

    ただし、実際の学習期間中はつまづいている時間がほとんどです。

    「もう挫折したくない」
    「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
    「自分だけのカリキュラムで効率的に勉強したい」

    そんな方はお気軽に侍エンジニア塾までご相談ください。

    弊社では、

    • プログラミング基礎学習
    • オリジナルアプリ開発
    • 仕事獲得

    までをひと通り学習できます。

    まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

    挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

    詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

    cta1

    LINEで送る
    Pocket

    書いた人

    中沢 丈

    中沢 丈

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    [email protected]

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説