C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で正規表現を使って文字列の一部を置き換える方法

C#では、Regex.Replaceメソッドを使うことで、正規表現パターンに一致する文字列の一部を簡単に別の文字列へ置き換えることができます。本記事では、具体的なサンプルコードを通してその使い方を解説します。

置換対象の文字列を用意する

まずは、置換を行う対象となる文字列を用意しましょう。ここでは次の文字列を使用します。

string str = "Bit and Bat";

この文字列に対して、「B」で始まり「t」で終わる3文字の単語(Bit、Batなど)をすべて「BAT」に置き換えたいとします。

Regex.Replaceメソッドで置換する

正規表現による置換には、System.Text.RegularExpressions名前空間に含まれるRegexクラスのReplaceメソッドを使用します。パターンとして「B.t」を指定すると、「B」と「t」の間に任意の1文字が入る文字列すべてがマッチ対象になります。ドット(.)は任意の1文字を表す特殊文字です。

string res = Regex.Replace(str, "B.t", "BAT");

これにより、「Bit」と「Bat」の両方が「BAT」に置き換えられます。

完全なサンプルコード

以下に、実際に動作する完全なコード例を示します。

using System;
using System.Text.RegularExpressions;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            string str = "Bit and Bat";
            Console.WriteLine(str);

            string res = Regex.Replace(str, "B.t", "BAT");
            Console.WriteLine(res);
        }
    }
}

実行結果

Bit and Bat
BAT and BAT

ポイント解説

  • Regex.Replace(入力文字列, パターン, 置換後の文字列):指定したパターンに一致するすべての部分を、第3引数の文字列に置き換えます。
  • ドット(.):改行以外の任意の1文字にマッチします。「B.t」の場合は「Bat」「Bet」「B7t」などもマッチ対象になります。
  • 大文字・小文字の扱い:デフォルトでは大文字と小文字が区別されます。区別せずにマッチさせたい場合は、RegexOptions.IgnoreCaseオプションを指定します。

このように、Regex.Replaceメソッドを活用すれば、柔軟なパターン指定による文字列の一括置換が実現できます。単純な文字列置換以上の処理が必要な場面でぜひ活用してください。

  1. Pythonで「\\」を「\」に置き換える方法|バックスラッシュのエスケープ解除テクニック

    Pythonでは、エスケープ処理された文字列に含まれる「\\」(二重のバックスラッシュ)を「\」(単一のバックスラッシュ)へ置き換えたい、つまりエスケープを解除したい場面があります。ここでは、その代表的な2つの方法をわかりやすく解説します。 方法1:ast.literal_eval を使う 1つ目の方法は、標準ライブラリの ast.literal_eval を使って文字列を評価するアプローチです。この方法では、対象の文字列をもう一段外側の引用符で囲む必要がある点に注意してください。 >>> import ast>>> a = Hello,\\nworld&

  2. Pythonで文字列内のすべての出現箇所を別の文字列に置換する方法

    str.replace()メソッドを使う方法Pythonの文字列クラス(str)には、replaceメソッドが標準で用意されています。このメソッドは「置換したい文字列」と「置換後の文字列」を引数として受け取り、文字列オブジェクトに対して呼び出すことで、該当するすべての出現箇所を一括して置き換えることができます。たとえば、次のように呼び出すと、文字列中のすべての「no」が「yes」に置き換えられます。>>> no one knows how.replace(no, yes) yes one kyesws how >>> chihuahua.replace(hu