我有一个正则表达式,用逐字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.
任何人都知道,如果没有将琴弦分开,我可以逃避其他花括号或其他东西以避免上述错误?
答案 0 :(得分:10)
试试这个(注意双花括号):
@"^{0}(\d
的{{4}}
强>)[W|S]\.(csv|cur)"