私は次のような文字列を持っています:rgb (255, 0, 0)
。,
そして、数字と(コンマ)文字を除いて、その中のすべての文字を削除したいと思います。
これに基づいて2つの質問があります。
正規表現でそれを行う方法は?(私はこの答え
,
を見つけました、しかし私はそれに(コンマ)サインを含める方法がわかりません...)正規表現はこの目的に最適な方法ですか?または、他の(より良い)方法がありますか?
(最高=最高のパフォーマンスを持つ)
確かに、正規表現は最も簡単です。
Regex.Replace(s, "[^\d,]+", "")
数字またはコンマ以外のすべてを置き換えます。
参照した質問と同じアプローチを使用します。
Regex rgx = new Regex("[^\d,]");
str = rgx.Replace(str, string.Empty);
正規表現は非常に実行可能なソリューションです。
各色の数字の前にオプションのスペースを許可するようにパターンを設定(?<colour>(\d*), ?(\d*), ?(\d*))
しますが、1桁あたり最大3つの数字に制限しません(さらに微調整することでこれを修正できます)。
次に、グループとして色にアクセスします。
Regex pattern = new Regex(@"(?<colour>(\d*), ?(\d*), ?(\d*))");
Match m = pattern.Match(color);
Console.WriteLine(m.Groups["colour"].ToString());
戻り値:255、0、0