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

C#における正規表現の基本と実践例:文字列の分割から空白の削除まで

正規表現(Regular Expression)とは、入力されたテキストに対してパターンマッチングを行うための記述方式です。.NETフレームワークには正規表現エンジンが組み込まれており、このようなパターンマッチングを簡単に実装できます。

本記事では、C#で正規表現を活用する具体的な方法を2つの例を通じて解説します。まずはRegex.Splitを使った文字列の分割方法から見ていきましょう。

Regex.Splitで文字列を分割する

正規表現を使って文字列を分割するには、Regex.Splitメソッドを使用します。

例として、改行コード(\r\n)を含む次のような文字列を想定します。

string str = "Hello\r\nWorld";

この文字列をRegex.Splitを使って分割するコードは以下の通りです。

string[] res = Regex.Split(str, "\r\n");

以下が、C#で正規表現を使用して文字列を分割する完全なサンプルコードです。

コード例:文字列の分割

using System;
using System.Text.RegularExpressions;

class Demo {
    static void Main() {
        string str = "Hello\r\nWorld";

        string[] res = Regex.Split(str, "\r\n");

        foreach (string word in res) {
            Console.WriteLine(word);
        }
    }
}

このコードを実行すると、「Hello」と「World」がそれぞれ別の行に出力されます。パターン「\r\n」(キャリッジリターン+ラインフィード)に一致した箇所で文字列が分割される仕組みです。

Regex.Replaceで余分な空白を削除する

続いて、正規表現を使って文字列内の連続する空白を1つのスペースに置き換える例を見てみましょう。この用途にはRegex.Replaceメソッドが便利です。

コード例:余分な空白の削除

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
    class Program {
        static void Main(string[] args) {
            string input = "Hello World ";
            string pattern = "\\s+";
            string replacement = " ";

            Regex rgx = new Regex(pattern);
            string result = rgx.Replace(input, replacement);

            Console.WriteLine("Original String: {0}", input);
            Console.WriteLine("Replacement String: {0}", result);
            Console.ReadKey();
        }
    }
}

コードの解説

  • pattern = "\\s+":\s+は「1つ以上の空白文字」に一致する正規表現パターンです。C#ではバックスラッシュをエスケープするため、\\s+と記述します。
  • replacement = " ":一致した部分を単一のスペースに置き換えます。
  • rgx.Replace(input, replacement):入力文字列内でパターンに一致したすべての箇所を置換します。

このコードを実行すると、「Hello World 」という元の文字列から余分な空白が取り除かれ、「Hello World」という結果が出力されます。

まとめ

.NETの正規表現機能を使えば、Regex.Splitによる文字列の分割や、Regex.Replaceによるパターンベースの置換など、複雑な文字列操作を簡潔なコードで実現できます。これらのメソッドはSystem.Text.RegularExpressions名前空間に含まれているため、使用時には必ずusingディレクティブを追加することを忘れないようにしましょう。

  1. JavaScriptで正規表現を文字列と照合する方法【match()メソッドの使い方】

    JavaScriptで正規表現を文字列と照合するには、match()メソッドを使用します。match()メソッドは、文字列が正規表現のパターンに一致するかどうかを判定し、マッチした結果を配列として返します。マッチする部分が見つからなかった場合は null を返します。 match()メソッドのパラメータ match( param ) − 照合に使用する正規表現オブジェクトを指定します。 サンプルコード 以下のコードは、文字列に対して正規表現を照合する具体的な例です。文章中から「Chapter」で始まる章番号を抽出しています。 <html>    &

  2. JavaScriptの正規表現修飾子(g・i・m)をサンプルコード付きで解説

    JavaScriptの正規表現修飾子とは JavaScriptの正規表現における修飾子(フラグ)とは、パターンリテラルの末尾に付加することで検索の挙動を変更できる、省略可能な指定のことです。これを使うことで、大文字と小文字を区別しない検索や文字列全体を対象としたグローバル検索などが簡単に実現できます。さらに、複数の修飾子を組み合わせて指定することも可能です。 主な修飾子の一覧 修飾子説明 gグローバルマッチングを有効にします。最初の一致で処理を止めず、マッチしたすべての結果を返します。 i大文字と小文字を区別しない(ignore case)マッチングを有効にします。 m複数行(mul