我的代码中要用到csv格式文件,这个文件实质上是将数据使用","分隔,形如: 张三,21,学生,团员,,无
李四,45,教师,党员,2000,无 其中存在一些空白信息,而且要保留这些空白信息
我的代码:
String pattern = "[^,]*";
String text = "wfwfdw,gqdqd,3regreg,3e2t52,,4y5jh,iu5uy4t3t,t3r3r,r3,r2";
String[] result = new string[20];
int index = 0;
foreach (Match m in Regex.Matches(text, pattern))
{
if (m.ToString().Equals("") != true)
{
result[index++] = m.ToString();
}
}由于不符合表达式的情况下,m返回"",所以",,"中的空白信息会丢失.
我自己的想法是用" text=text.Replace(",,",", ,");"将空白信息替换成空格,这样问题就解决了,请问有没有更好的表达式可以解决
李四,45,教师,党员,2000,无 其中存在一些空白信息,而且要保留这些空白信息
我的代码:
String pattern = "[^,]*";
String text = "wfwfdw,gqdqd,3regreg,3e2t52,,4y5jh,iu5uy4t3t,t3r3r,r3,r2";
String[] result = new string[20];
int index = 0;
foreach (Match m in Regex.Matches(text, pattern))
{
if (m.ToString().Equals("") != true)
{
result[index++] = m.ToString();
}
}由于不符合表达式的情况下,m返回"",所以",,"中的空白信息会丢失.
我自己的想法是用" text=text.Replace(",,",", ,");"将空白信息替换成空格,这样问题就解决了,请问有没有更好的表达式可以解决
string[] result = text.Split(',');
string text = "wfwfdw,gqdqd,3regreg,3e2t52,,,4y5jh,,iu5uy4t3t,t3r3r,,,,r3,r2";
string[] a = Regex.Split(text, pattern);
foreach (string s in a)
{
Console.WriteLine(s);
}输出:
wfwfdw
gqdqd
3regreg
3e2t52,,
4y5jh,
iu5uy4t3t
t3r3r,,,
r3
r2
请按任意键继续. . .
string text = "wfwfdw,gqdqd,3regreg,3e2t52,,,4y5jh,,iu5uy4t3t,t3r3r,,,,r3,r2";
string[] a = Regex.Split(text, pattern);
foreach (string s in a)
{
Console.WriteLine(s);
}
输出OK
wfwfdw
gqdqd
3regreg
3e2t52
4y5jh
iu5uy4t3t
t3r3r
r3
r2
请按任意键继续. . .
我自己的想法是用" text=text.Replace(",,",", ,");"将空白信息替换成空格,这样问题就解决了,请问有没有更好的表达式可以解决?
---------------------------------
sorry,前面没看清,text=text.Replace(",,",", ,")这个不是一个很简单的方法吗?
如果用正则string text = "wfwfdw,gqdqd,3regreg,3e2t52,,,4y5jh,,iu5uy4t3t,t3r3r,,,,r3,r2";
text = Regex.Replace(text, "(,)(?=,)", "${1} ");
Console.WriteLine("new text:{0}",text); string[] a = text.Split(',');
foreach (string s in a)
{
Console.WriteLine(s);
}
输出
new text:wfwfdw,gqdqd,3regreg,3e2t52, , ,4y5jh, ,iu5uy4t3t,t3r3r, , , ,r3,r2
wfwfdw
gqdqd
3regreg
3e2t52
4y5jhiu5uy4t3t
t3r3rr3
r2
请按任意键继续. . .