接着上一个提问贴:DataGridView的排序,排序列是“字母和数字的混合”
http://topic.csdn.net/u/20120719/10/321b47cd-d8b5-4e68-98e5-a2032c6c05da.html?93895接着请教好的:
1:数字和字母混合的字符串比较大小方法,前面字母一样时候,后边数字比大小
   例如:想要的结果是
         abc1<abc9<abc<20<abc<100
         默认是
         abc1<abc100<abc20<abc9
2:数字和字母混合的字符串拆分方法
   例如:字符串  “abc123def456ghij789klmn”
         拆分为List<string>中元素为
         abc
         123
         def
         456
         ghij
         789
         klmn谢谢。

解决方案 »

  1.   

    拆分            string source = "bc123def456ghij789klmn";
                Regex reg = new Regex(@"(?is)[a-z]+|\d+");
                MatchCollection mc = reg.Matches(source);
                foreach (Match m in mc)
                {
                  MessageBox.Show(m.Value);            }               
      

  2.   

    排序在查询的时候order by to_number(substr('字段',4))
      

  3.   


    因为 位数,字母数字个数都不确定。所以我想是不是要先按,字母和数字 拆分成 list然后 然后比较list里的元素呢?