正则 表达式问题

wearewaiting 2007-11-16 11:05:49
static void Main(string[] args)
{
string a = "{a,b,c,d,e}";
Regex g = new Regex("[{,}]");
string[] num = g.Split(a);
Console.WriteLine(num.Length);
for (int i = 0; i < num.Length - 1; i++)
{

Console.Write(num[i+1].ToString() + " ");

}

Console.WriteLine();
foreach (string obj in num)
{
Console.Write(obj.ToString());

}


结果
7
a b c d e
abcde

请问为什么数组长度是7啊 明明只有5个元素 而num[0],num[6]为空

小弟刚学正则表达式 谢谢帮忙哈
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
root_ 2007-11-17
  • 打赏
  • 举报
回复
这个问题,根本没必要用正则

string a = "{a,b,c,d,e}";
string[] num = a.Split(new char[] { '{', ',', '}' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(num.Length);
foreach (string obj in num)
{
Console.WriteLine(obj.ToString());
}
wearewaiting 2007-11-17
  • 打赏
  • 举报
回复
谢谢

那请问除了重新new 一个数组 再赋值之外 有其他简单的办法除去 2边的空字符没

wuhq030710914 2007-11-17
  • 打赏
  • 举报
回复
你的表达式是用{ } ,进行分割,{ 前面有个空格,} 后面也有个空格,所以是7个阿
LeoMaya 2007-11-17
  • 打赏
  • 举报
回复
每个大括号的左右两边都还是会被Split出一部分来的, 很明显, 这样一个string, "1|2|3", Split('|')的话, 结果长度是3, 自己想想就会明白

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧