C#の正規表現で一致する部分文字列を見つける方法
C#では、System.Text.RegularExpressions名前空間に含まれるRegexクラスを使うことで、文字列の中から特定のパターンに一致する部分文字列を簡単に検索できます。本記事では、Regex.Matchesメソッドと正規表現パターンを組み合わせて、文字列から目的の単語を抽出する方法を解説します。
検索対象となる文字列
まず、次のような文字列を用意します。
string str = " My make " ;
使用する正規表現パターン
この文字列から「make」という単語を見つけるには、次の正規表現を使用します。
@"\bmake\b"
ここで使われている「\b」は「単語境界(word boundary)」を表す特殊なメタ文字です。これにより、「make」という完全な単語だけが一致対象となり、「makeup」や「maker」のように「make」を含む別の単語が誤ってマッチするのを防げます。
サンプルコード
以下が完全なコード例です。
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
public 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("Found:" + m);
}
}
public static void Main(string[] args) {
string str = "My make";
Console.WriteLine("Matching words start with 'm' and ends with 'e':");
showMatch(str, @"\bmake\b");
}
}
}
コードのポイント
- showMatchメソッド:受け取ったテキストに対して指定された正規表現を適用し、一致したすべての箇所をコンソールに出力します。
- Regex.Matchesメソッド:入力文字列内で正規表現パターンに一致するすべての部分を検索し、結果を
MatchCollectionとして返します。 - foreachループ:
MatchCollection内の各Matchオブジェクトを順番に取り出し、一致した文字列を表示します。
実行結果
Matching words start with 'm' and ends with 'e': The Expression: \bmake\b Found:make
このように、Regexクラスと正規表現を組み合わせることで、C#でも柔軟かつ強力な文字列検索が実現できます。特に単語境界「\b」を活用すれば、意図しない部分一致を避け、目的の単語だけを正確に抽出できるため、実務での文字列処理にもぜひ役立ててください。
-
【Python】正規表現で文字列の末尾にマッチさせる方法
文字列の末尾にマッチさせるには Pythonのreモジュールを使うと、正規表現によって文字列の末尾にある特定のパターンを簡単に抽出できます。文字列の最後に一致させるには、正規表現のメタ文字である $ を使用します。 $ は「文字列の終わり」を表す特殊文字です。パターンの末尾にこの記号を付けることで、文字列の最後にある単語だけをマッチさせることができます。 以下のコードでは、文字列「cheer leaders at the football stadium」の末尾にある単語「stadium」をマッチさせています。 コード例 import re s = cheer leaders at the
-
Pythonで正規表現を使って文字列の先頭にマッチさせる方法
正規表現では、^(キャレット)というメタ文字を使うことで、文字列の先頭にマッチさせることができます。この記号は、パターンが対象となる文字列の冒頭から始まる場合にのみ一致することを意味します。例えば、次のコードは文字列「cheer leaders at the football stadium」の先頭にある単語「cheer」を抽出して表示します。コード例import re s = cheer leaders at the football stadium result = re.search(r^\w+, s) print(result.group())ここで使用しているパターン r^\w+