2009-03-23 10 views
6

私はそうのように、逐語的にC#の文字列型で定義された正規表現を、持っている:C#文字列フォーマットプレースホルダ

private static string importFileRegex = @"^{0}(\d{4})[W|S]\.(csv|cur)"; 

最初の3つの文字、右側の正規表現のライン開始(^)の後にすることができ可能な限り多くのアルファベット文字の組み合わせの1つ。

私はこのように、開始時に選択の私の3文字の組み合わせを配置し、私のマッチングアルゴリズムでこれを使用して、上記を使用して、エレガントなString.Formatのをやりたい:

string regex = String.Format(importFileRegex, "ABC"); 

私を与えるだろうどの正規表現の^ABC(\d{4})[W|S]\.(csv|cur)

私は文字列に他の中括弧(例:\d{4})String.Formatを入れて何かを探して見つけることができませんエラー:

System.FormatException : Index (zero based) must be greater than or equal to zero and less than the size of the argument list. 

誰でも知っている、どのように文字列を分割の短い、私は上記のエラーを避けるために他の中括弧または何かをエスケープすることができますか?

答えて

10

(二重中括弧に気づく)、これを試してみてください:

@"^{0}(\d{{4}})[W|S]\.(csv|cur)"

+0

彼は加えた、この質問でも、それをカバーし、答えはMSDNのリンク有することを特徴とするもの: http://stackoverflow.com/questions/160742を/あなたが書いたようなフォーマットの文字列 –

+0

私はいつも二重中括弧を忘れています。 +1。 – OregonGhost