【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日

    まとめ

    いかがでしたか?

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

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

    おすすめのコンテンツ

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

    「何の言語から勉強すればいいかわからない・・・」そんなあなたに質問に答えていくだけで、何の言語を学べば良いのか診断いたします!未経験から6ヶ月でプログラミング習得に向けた学習プランが1分で分かる!

    現役フリーランスエンジニアによる無料体験レッスン実施中!

    もし、あなたが、

    • 経験、年齢、学歴に不安がある
    • 挫折しない学習方法が知りたい
    • アプリ開発で困っている
    • エンジニアの”生”の声が聞きたい!
    • 仕事獲得の仕方がわからない
    • エンジニアに転職したいが何をすればいいかわからない

    など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

    あなたにとって、最適の解決策をご提案させていただきます。

    詳しくは下の画像から詳しいサービス内容をご確認ください。

    cta_mtm3

    非常識な結果を出す卒業生多数!

    エンジニアキャリア戦略

    人気記事セレクション

    3000名以上来場の人気セミナーが開催決定

    18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

    0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

    • 日付:4/20(土),4/27(土)
    • 時間:14:00〜17:35終了予定
    • 場所:当社 道玄坂オフィス
    • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
    • 参加費:無料
    • URL:https://seminar.sejuku.net/
    詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

    LINEで送る
    Pocket

    この記事が気に入ったら
    いいね!をしてフォローしよう

    最新情報をお届けします

    書いた人

    中沢 丈

    中沢 丈

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

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