首页 新闻 会员 周边

请问C#中有一组字符串的集合,每个字符串有<数字>的格式,怎么将<数字>和其他字符截取?

0
悬赏园豆:20 [已解决问题] 解决于 2014-12-26 09:58

例如有几组字符串是这样格式的

1 string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>";

我要把这节字符串截取为一个数组,前面的字符串是一组,从 "<" 号开始到 ">" 结束是一组,以此类推,请问怎么做?

哈勒斌程序员的主页 哈勒斌程序员 | 初学一级 | 园豆:150
提问于:2014-12-26 09:15
< >
分享
最佳答案
0

熟练使用Instr, Left, Mid这些函数,你就不用纠结写不出正则表达式了。

收获园豆:10
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-12-26 09:24
其他回答(6)
0

我写不出这个正则,我会选择用字符串处理方案。IndexOf

幻天芒 | 园豆:37175 (高人七级) | 2014-12-26 09:20
0

用正则表达式 (<.*?>)

问天何必 | 园豆:3311 (老鸟四级) | 2014-12-26 09:22
0

1、自己编写语法解析逻辑;

2、使用正则表达式的组捕获;

Launcher | 园豆:45045 (高人七级) | 2014-12-26 09:23
0
            string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>";

           string[] s=  str.Split(new char[]{'<','>'});

           foreach (var item in s)
           {
               Console.WriteLine(item);
           }
收获园豆:5
需要格局 | 园豆:2145 (老鸟四级) | 2014-12-26 09:46

您的是最佳答案,我选错了,不好意思啊%>_<%%>_<%

支持(0) 反对(0) 哈勒斌程序员 | 园豆:150 (初学一级) | 2014-12-26 10:00
0

   string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>";
            string pattern=@"\<\d+\>";
            MatchCollection mc = Regex.Matches(str,pattern);
            var tmpArray= Regex.Split(str, pattern);
            List<string> list = new List<string>();
            for (int i = 0; i < tmpArray.Length; i++)
           {

               list.Add(tmpArray[i]);
                if(mc.Count>i)
                    list.Add(mc[i].Value);
           }
           foreach (var item in list)
           {
               Console.WriteLine(item);
           }
            Console.ReadKey();

收获园豆:5
隔壁老王来了 | 园豆:99 (初学一级) | 2014-12-26 09:50
0
string str = "字符串字符串<65441>字符串字符串字符串<5887>这是字符串这是字符串这是字符串<998772>字符串<55666>";
                List<string> str1 = new List<string>();
                List<string> str2 = new List<string>();
            foreach (string section in str.Split('>')){
                if (section.Contains("<")) 
                {
                    if (!string.IsNullOrEmpty(section.Split('<')[0]))
                    {
                        str1.Add(section.Split('<')[0]);
                    }
                    if (!string.IsNullOrEmpty(section.Split('<')[1]))
                    {
                        str2.Add(section.Split('<')[1]);
                    }
                }
                else if (!string.IsNullOrEmpty(section))
                {
                    str1.Add(section);
                }
            }
            foreach (string st1 in str1){
                MessageBox.Show(st1);
            }
            foreach (string st2 in str2)
            {
                MessageBox.Show(st2);
            }
Slark.NET | 园豆:692 (小虾三级) | 2014-12-26 09:57

十分感谢

支持(0) 反对(0) 哈勒斌程序员 | 园豆:150 (初学一级) | 2014-12-26 10:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册