【C#入門】正規表現でパターンに一致する文字列を置換(Replace)

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

C#には正規表現で文字列のパターンを指定して置換するための「Replaceメソッド」あります。

正規表現でパターンを指定すれば任意の文字列を書き換えることができるので、上手く活用してください。

この記事では、

・正規表現とは
・Replaceメソッドで置換する方法

という基本的な内容から、

・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
( )カッコ内をグループ化。マッチした内容は参照可。

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

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

Replaceメソッドは第1引数に検索対象の文字列を指定し、第2引数に置換後の文字列を指定します。

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

using System;
using System.Text.RegularExpressions;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string str = "SamuraiEngineer";
            Regex reg = new Regex("Samurai");

            string result = reg.Replace(str, "サムライ");

            Console.WriteLine(result);

            Console.ReadKey();
        }
    }
}

実行結果:

サムライEngineer

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

Replaceメソッドで削除する方法

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

Replaceメソッドで削除するには、置換後の文字列に空文字(””)を指定します。

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

using System;
using System.Text.RegularExpressions;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string str = "Samurai123Engineer";
            Regex reg = new Regex("[0-9]");

            string result = reg.Replace(str, "");

            Console.WriteLine(result);

            Console.ReadKey();
        }
    }
}

実行結果:

SamuraiEngineer

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

まとめ

いかがでしたか?

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

Replaceメソッドで置換後の文字列に空文字(””)を指定すれば削除できるので、ぜひ活用してくださいね。

もし、正規表現で置換する方法を忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次