C#の正規表現とは?基本概念とRegexクラスの使い方をわかりやすく解説
正規表現とは、入力テキストと照合(マッチング)を行うためのパターンのことです。.NETフレームワークには、このような照合を実現する正規表現エンジンが組み込まれており、開発者はこれを利用して高度な文字列操作を行えます。
パターンは、1つ以上の文字リテラル、演算子、または構成要素から構成されます。これらを組み合わせることで、「特定の文字で始まる単語」「メールアドレス形式の文字列」など、柔軟な条件での文字列検索が可能になります。
正規表現の基本的な使い方
例えば、「S」で始まる単語を抽出したい場合は、次のようにC#で正規表現を使用します。
コード例
using System;
using System.Text.RegularExpressions;
namespace Demo {
class Program {
private static void showMatch(string text, string expr) {
Console.WriteLine("The Expression: " + expr);
MatchCollection mc = Regex.Matches(text, expr);
foreach (Match m in mc) {
Console.WriteLine(m);
}
}
static void Main(string[] args) {
string str = "Email Sent Today!";
Console.WriteLine("Matching words that start with 'S': ");
showMatch(str, @"\bS\S*");
Console.ReadKey();
}
}
}出力結果
Matching words that start with 'S': The Expression: \bS\S* Sent
この例では、パターン \bS\S* を使用しています。\b は単語境界を表し、S\S* は「S」の後に空白以外の文字が0個以上続く単語を意味します。その結果、「Email Sent Today!」という文字列から「Sent」だけが抽出されました。
Regexクラスの主なメソッド一覧
C#で正規表現を扱う際の中核となるのが System.Text.RegularExpressions.Regex クラスです。このクラスには、以下のような便利なメソッドが用意されています。
| 番号 | メソッドと説明 |
|---|---|
| 1 | public bool IsMatch(string input) Regexコンストラクタで指定した正規表現が、指定された入力文字列内に一致(マッチ)を見つけられるかどうかを判定します。 |
| 2 | public bool IsMatch(string input, int start) Regexコンストラクタで指定した正規表現が、入力文字列内の指定された開始位置以降に一致を見つけられるかどうかを判定します。 |
| 3 | public static bool IsMatch(string input, string pattern) 指定された正規表現パターンが、指定された入力文字列内に一致を見つけられるかどうかを判定します。 |
| 4 | public MatchCollection Matches(string input) 指定された入力文字列全体を走査し、正規表現に一致するすべての箇所を検索します。 |
| 5 | public string Replace(string input, string replacement) 指定された入力文字列内で、正規表現パターンに一致するすべての文字列を、指定された置換文字列に置き換えます。 |
| 6 | public string[] Split(string input) Regexコンストラクタで指定された正規表現パターンに一致する位置で、入力文字列を分割し、部分文字列の配列として返します。 |
まとめ
C#の正規表現は、文字列の検索・置換・分割などを効率的に行うための強力なツールです。特に IsMatch による存在確認、Matches による全件取得、Replace による一括置換は、日常的な開発業務で頻繁に活用されます。まずは簡単なパターンから試して、正規表現の書き方に慣れていくことをおすすめします。
-
JavaScriptの正規表現(RegExp)とは?基本構文と使い方をわかりやすく解説
JavaScriptの正規表現とは 正規表現(Regular Expression)とは、文字列の中から特定のパターンを記述・検索するためのオブジェクトです。JavaScriptではRegExpクラスが正規表現を表しており、StringオブジェクトとRegExpオブジェクトの両方に、強力なパターンマッチングや文字列の検索・置換を実現するメソッドが用意されています。 正規表現の定義方法 JavaScriptで正規表現を定義するには、RegExp()コンストラクタを使う方法と、リテラル記法を使う方法の2通りがあります。 var pattern = new RegExp(pattern, att
-
JavaScriptの関数式(Function Expression)とは?特徴と使い方を解説
JavaScriptにおける関数式(Function Expression)とは、関数を変数に代入して定義する方法のことです。代入された関数は、その変数名を使って後から呼び出すことができます。 関数式の主な特徴 関数を変数に格納し、変数名を指定して呼び出せる 通常の関数宣言(function declaration)と異なり、ホイスティング(巻き上げ)が行われないため、定義よりも前に呼び出すことはできない 多くの場合、名前を持たない「無名関数(匿名関数)」として定義される コールバック関数や即時実行関数(IIFE)など、さまざまな場面で活用できる この「ホイスティングされない」という点が重