の文字列を解析:Iは、以下のような文字列がある場合は、{0}
"の部分を1 {0}別の{1}、最後に{2}"
がどのようにするようにそれを解析することができ"{0}"、 "{1}"、 "{2}"のコンポーネントを抽出する
の文字列を解析:Iは、以下のような文字列がある場合は、{0}
"の部分を1 {0}別の{1}、最後に{2}"
がどのようにするようにそれを解析することができ"{0}"、 "{1}"、 "{2}"のコンポーネントを抽出する
Regex regex = new Regex(@"\{[0-9]+\}");
var matches = regex.Matches("part one {0} another {1} and finally {2}");
// matches contains "{0}", "{1}", {2}
プレースホルダが常に1桁の場合は、"+"
を削除します。
RegExが遅くなる可能性があります。より高いパフォーマンスが必要な場合(おそらく、この形式の多くの文字列を解析しているため)、通常は手動で解析することができます。これは良いマーカーがある限り機能します。たとえば、あなたが解析しようとしている文字列に 'another'または 'and finally'という単語が表示された場合は、問題が発生する可能性があります。それ以外の場合は、 'IndexOf'と 'Substring'の組み合わせを使用してこの文字列を簡単に分割できます。
これを試してください。汚れていますが、削除する価値があることが分かっていれば動作します。コードを読み取った人は誰でも読むことができます。
String newString = String.Format(myString, String.Empty, String.Empty, String.Empty);
たり、空の文字列ではなくString.Empty, String.Empty, String.Empty
を使用しての配列を使用することができます...あなたが言及した{D} `パラメータ`の数に加えて
は、別の問題は、文字列は、他の含まれているかもしれないということです'{'と '} '文字を使用すると、' String.Format'が例外をスローします。しかも、私はOPが彼らを取り除きたいとは確信していません。それは何らかの解釈が必要です。 – Kobi
私が質問を読む方法は、誰かが文字列 "part one {0} another {1} and finally {2}"を与えられていて、ただ単にそれらを取り除くのではなく、いくつかのパラメータに基づいて異なる値にすることでした。全体的に質問はかなり漠然としていますが、OPはそれらを削除したり、他のものや全く別のものに置き換えたいと思いますか? – Seph