读书人

正则好手快来.

发布时间: 2012-09-19 13:43:53 作者: rapoo

正则高手快来...
string result = "[数字]字符\r\n[数字]字符[n]n";
n无限大 当然用户不可能输入很多的,怎么匹配输入的字符串是否合法,\r\n是控件取出值的换行符,可以根据\r\n spilt数组


[解决办法]

C# code
string result = "\r[1]手机\r[2]电脑\r[3]母婴用品";                string match_pattern = @"^((\s|\r)*?(?<text>\[(?<value>\d+?)\][^\s\\]+)(\s|\r)*?)+$";                Match m = Regex.Match(result, match_pattern);                if (m.Success)//匹配成功                {                    string[] arr = m.Groups["text"].Captures.Cast<Capture>().Select(a => a.Value).ToArray();                    /*                     *         [0]    "[1]手机"    string                            [1]    "[2]电脑"    string                            [2]    "[3]母婴用品"    string                     */                    List<int> _list = m.Groups["value"].Captures.Cast<Capture>().Select(a => int.Parse(a.Value)).ToList();                    /*                     *         [0]    1    int                            [1]    2    int                            [2]    3    int                     */                } 

读书人网 >C#

热点推荐