正则表达式中的C#字符串格式占位符

时间:2009-03-23 10:03:19

标签: regex formatting

我有一个正则表达式,用逐字C#字符串类型定义,如下所示:

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

正则表达式行开始后的前3个字母(^)可以是许多可能的字母字符组合之一。

我想使用上面的方法做一个优雅的String.Format,在开始时放置我的3个字母组合选择并在我的匹配算法中使用它,如下所示:

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

这会给我一个^ABC(\d{4})[W|S]\.(csv|cur)

的正则表达式

问题是,当我执行String.Format时,因为我在字符串中有其他花括号(例如\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.

任何人都知道,如果没有将琴弦分开,我可以逃避其他花括号或其他东西以避免上述错误?

1 个答案:

答案 0 :(得分:10)

试试这个(注意双花括号):

  

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