读书人

请问怎么用正则表达式分割如上字符串

发布时间: 2012-09-02 21:00:34 作者: rapoo

请教,如何用正则表达式分割如下字符串?
string pattern=@"^@.*\s";
MatchCollection mymatches = Regex.Matches(SS,pattern);
string[] arr = mymatches[0].ToString().Split(new char[]{'@'});
如果SS是“@你@我@他@所有人 我对大家说一句话”,这样能实现分割得到你、我、他、所有人四个用户名。
但是如果我想实现分割“@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说”得到你、我、他、所有人,这该怎么实现呢?正则表达式我那样写好像实现不了

[解决办法]

C# code
            string source = "@你 对你说@我 对自己说@他 对他说@所有人 这是对所有人说";            Regex reg = new Regex(@"(?is)(?<=@).*? ");            MatchCollection mc = reg.Matches(source);            foreach (Match m in mc)            {                MessageBox.Show(m.Value);            }
[解决办法]
Regex reg = new Regex(@"@[^\s]+");
[解决办法]
探讨
引用:
试试,

C# code


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

真厉害,这个可以啊,不过我想得到@你@我@他@所有人,就是在前……

读书人网 >asp.net

热点推荐