「.NET」 書道家「Regex」が描く正規表現パターンの世界

2024年11月11日月曜日

文字列操作

t f B! P L

名前空間 System.Text.RegularExpressions

Regex

こんにちは、Regexよ。私は文字列という墨で描かれた世界で、パターンを見つけ出す書道家なの。繊細な筆使いで、複雑な文字列パターンを美しく表現することができるのよ。

基本機能

私の技法は、文字列から特定のパターンを見つけ出し、置換や抽出を行うことができるの。まるで墨の濃淡を調整するように、柔軟な表現力で文字列を操作できるのよ。

サンプルコード(芸術)

C#
1using System;
2using System.Text.RegularExpressions;
3
4public class RegexArtist
5{
6    // 文字列からメールアドレスを抽出する
7    public static void FindEmails(string text)
8    {
9        string pattern = @"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}";
10        Regex regex = new Regex(pattern);
11        
12        foreach (Match match in regex.Matches(text))
13        {
14            Console.WriteLine($"見つけたメールアドレス {match.Value}");
15        }
16    }
17
18    // 電話番号を統一フォーマットに整形する
19    public static string FormatPhoneNumbers(string text)
20    {
21        string pattern = @"(\d{2,4})-?(\d{2,4})-?(\d{3,4})";
22        string replacement = "$1-$2-$3";
23        
24        return Regex.Replace(text, pattern, replacement);
25    }
26
27    // HTML風のタグを除去する
28    public static string RemoveHtmlTags(string html)
29    {
30        return Regex.Replace(html, @"<[^>]+>", "");
31    }
32}

このコードは、私の代表的な作品よ。メールアドレスの抽出や電話番号の整形、HTMLタグの除去など、様々なパターンマッチングを表現しているの。正規表現パターンは筆づかいのように繊細で、それぞれの目的に合わせて丁寧に調整されているのよ。

パターン表現の技法

私の技法には様々な表現方法があるの。^(行頭)や$(行末)、\d(数字)、\w(単語文字)など、まるで書道の基本点画のように、組み合わせることで豊かな表現が可能になるのよ。

最適化とパフォーマンス

大きな文字列を扱う時は、RegexOptions.Compiledを使って事前にパターンをコンパイルしておくと、より効率的に処理できるの。まるで書道の下書きのように、準備をしっかりすることで、美しい仕上がりになるのよ。

このブログを検索

QooQ