C# 固有の何かがあるわけではないですが、タイトルに C# とつけてみました。
最近作ってウェブサイトで {} に囲まれた文字列を抜き出す処理が必要だったのでコードを書きました。しかし、 ググっても、あまり似た情報がないのでブログに書いてみました。
前提知識
C# で、 正規表現を使うためには、 Regex クラスを使います。
サンプルコード
using System; using System.Text.RegularExpressions; namespace ConsoleApp3 { class Program { static void Main(string[] args) { var Text = "The quick brown {fox} jumps over the lazy {dog}"; var Matches = new Regex(@"\{(.+?)\}").Matches(Text); for (int i = 0; i < Matches.Count; i++) { var AnimalName = Matches[i].Value; Console.WriteLine($"{i}:{AnimalName}"); } } } }
実行結果
正規表現の解説
正規表現的な部分はここかな
{(.+?)}
\{ \} でエスケープ処理
正規表現では、 {} は意味を持つ字句です。 具体的には、 *m{n} などと書くことにより mがn回繰り返すなどの意味があります。 そこで、 \ をつけることでエスケープしています。