在C#程序中使用Regex.Replace函数将字符串(数据)替换为“数据”?

时间:2019-01-29 15:12:06

标签: c# regex

我想使用Regex.Replace函数替换格式为

的数据
  

05-11

  

“ 05-11”

,以便excel可以将其读取为字符串。

即使该特定列定义为char,Excel也会将数据转换为11月5日。

在我的应用程序代码中,我具有下面的代码,以双引号“ data”替换以破折号(-)开头的任何数据

var newString = Regex.Replace(data, @"^(-.*)$", "=\"$0\"");

如何使用此功能替换

之类的任何数据
  

“ 05-11”,“ 15-2019”

  

“ 05-11”,“ 15-2019”

供excel将其读取为字符串而不是日期格式。

1 个答案:

答案 0 :(得分:0)

不幸的是,Excel不接受"作为文本列的指示符,唯一可以确保用单引号引起来的值。

var newstring = Regex.Replace(data, @"\b""?(\d\d-(?:\d\d)?\d\d)""?\b", "\"=\"\"$0\"\"\"");

这将查找可能构成整个列值的双引号日期字符串,并将其输出并用等号和双引号引起来。

不幸的是,如果您从Excel内部另存为CSV并尝试重新加载,则会丢失这种特殊格式。

有关详细信息,请参见this question