前提・実現したいこと
C#で正規表現(System.Text.RegularExpressions.Regex)を用いて大文字・小文字変換する方法を教えて下さい。
Regexクラスを用いて、大文字・小文字を区別せず検索する方法などはわかるのですが、マッチした文字列を小文字・大文字に変更する方法がわかりません。
ユーザーからの入力と期待される結果の例を示します。
pattern | replace | source | result | |
---|---|---|---|---|
例1 | "C#" | "C++" | "C#大好き!" | "C++大好き!" |
例2 | "(.)" | "\u$1" | "123abc" | "123ABC" |
入力例1はRegexでできます。
入力例2はサクラエディタの変換機能例から
https://qiita.com/take333/items/106fde0cdd3cac3c5b68
System.Text.RegularExpressions.Regexではない、nugetライブラリなどで実現できるなら、それでも結構です。
該当のソースコード
以下のような形で、実行時にユーザーからの入力に基づいて文字列の置換を行いたいです。
C#
1static void Main(string[] args) 2{ 3 Console.WriteLine("Input Target Pattern"); 4 var targetPattern = Console.ReadLine(); 5 Console.WriteLine("Input Replace Pattern"); 6 var replacePattern = Console.ReadLine(); 7 8 var regex = new Regex(targetPattern); 9 10 while (true) 11 { 12 Console.WriteLine("Input Source Text"); 13 var sourceText = Console.ReadLine(); 14 var replacedText = regex.Replace(sourceText, replacePattern); 15 Console.WriteLine($"Replaced {sourceText} -> {replacedText}"); 16 Console.WriteLine(); 17 } 18}
試したこと
stringのToLower()
またはToUpper()
で大文字・小文字変換ができるのはわかりますが、実行時にユーザーからの入力で柔軟に変更するためには正規表現で統一できると助かります。
補足情報(FW/ツールのバージョンなど)
C# 8
.NET Core 3.1
Visual Studio 2019
回答2件
あなたの回答
tips
プレビュー