请教,如何用正则表达式分割如下字符串?

li2422121715 2012-07-31 02:59:34
string pattern=@"^@.*\s";
MatchCollection mymatches = Regex.Matches(SS,pattern);
string[] arr = mymatches[0].ToString().Split(new char[]{'@'});
如果SS是“@你@我@他@所有人 我对大家说一句话”,这样能实现分割得到你、我、他、所有人四个用户名。
但是如果我想实现分割“@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说”得到你、我、他、所有人,这该怎么实现呢?正则表达式我那样写好像实现不了
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:
试试,

C# code


string str = @"@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说";
Regex reg = new Regex(@"(?<=@)[^\s]+");
foreach (Match m in reg.Matches(str))
……

真厉害,这个可以啊,不过我想得到@你@我@他@所有人,就是在前……
[/Quote]
正则改成这样Regex reg = new Regex(@"@[^\s]+");
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"@[^\s]+");
li2422121715 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
试试,

C# code


string str = @"@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说";
Regex reg = new Regex(@"(?<=@)[^\s]+");
foreach (Match m in reg.Matches(str))
……
[/Quote]
真厉害,这个可以啊,不过我想得到@你@我@他@所有人,就是在前面加个@,如何实现呢??
bdmh 2012-07-31
  • 打赏
  • 举报
回复

string source = "@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说";
Regex reg = new Regex(@"(?is)(?<=@).*? ");
MatchCollection mc = reg.Matches(source);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
huangwenquan123 2012-07-31
  • 打赏
  • 举报
回复
试试,

string str = @"@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说";
Regex reg = new Regex(@"(?<=@)[^\s]+");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Value);

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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