c#中的string.format语法及其作用?

时间:2013-11-26 14:19:07

标签: c# ssis

我目前正在尝试修改SSIS项目的脚本以从动态.txt文件导入数据(有时会添加colums)。

我是c#的新手,脚本中唯一的问题是它包含一个我真的无法抓取的字符串格式表达式,所以我的问题是:

这是做什么的?

string _Statement = String.Format ("{0}(?=(?:[^{1}]*{1}[^{1}]*{1})*(?![^{1}]*{1}))"

参数是

  {0} = First line in the file containing all the column headers
  {1} = Semicolon delimiter

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

由于重复使用相同的索引,因此插入相同的值。

因此{0}将替换为

 First line in the file containing all the column headers

并且{1}的所有出现都将被

取代
Semicolon delimiter

但是,上面的代码似乎不完整,因为我错过了string.Format末尾的参数列表。类似的东西:

string _Statement = String.Format("{0}(?=(?:[^{1}]*{1}[^{1}]*{1})*(?![^{1}]*{1}))"
                                   , firstLine , ";");

假设该行是:TEST-LINE这是结果:

"TEST-LINE(?=(?:[^;]*;[^;]*;)*(?![^;]*;))"

答案 1 :(得分:0)

这里的String.Format方法用First line in the file containing all the column headers替换所有出现的{0},用Semicolon delimiter替换所有出现的{1}。在这种情况下,结果字符串将是正则表达式(正则表达式)。

答案 2 :(得分:0)

String.Format格式化您的字符串,因此{}中的每个参数都将替换为您还必须指定的值。在您的示例中,{0}的所有值都将替换为

First line in the file containing all the column headers

,{1}的所有值都将替换为

Semicolon delimiter

您必须将这两个值指定为String.Format的参数,因此您的代码应如下所示:

string first = "col1,col2,col3";
string second = ";";
string _Statement = String.Format("{0}(?=(?:[^{1}]*{1}[^{1}]*{1})*(?![^{1}]*{1}))", first, second);

结果将是

_Statement = "col1,col2,col3(?=(?:[^;]*;[^;]*;)*(?![^;]*;))";