当前位置:编程学习 > C#/ASP.NET >>

如何用正则将字符串里的数据提取出来?

如:

你好,我叫赵云,我是武将,擅长用枪.
你好,我叫黄忠,我是武将,擅长用弓箭.
你好,我是诸葛亮,我是文官.


上面一行行字符串,如何用正则把蓝色字的数据提取出来?
--------------------编程问答-------------------- 你这好像没啥规律 --------------------编程问答-------------------- 最后一行错了,有规律,都是[你好,我叫XX,我是XX,擅长用XX.]

只是XX前后有可能有空格. --------------------编程问答--------------------

            System.IO.StreamReader reader = new System.IO.StreamReader(@"e:\1.txt",Encoding.Default);
            string source = reader.ReadToEnd();
            string patten = @"(?<=叫|是|用)[^,.]+(?=,|\.)";
            Regex reg = new Regex(patten);
            MatchCollection mc = reg.Matches(source);
            foreach (Match item in mc)
            {
                MessageBox.Show(item.Value);
            }
--------------------编程问答--------------------

谢谢版主。那如果用这种表达式,如何写呢?
string patten = "你好,我叫[正则],我是[正则],擅长用[正则].";
最后得出的是Match类型.
我是想最好能用Match.Groups[0].Value;得到数据. --------------------编程问答-------------------- 好像知道了。


string patten = "你好,我叫(?<Name>.+?),我是(?<Type>.+?),擅长用(?<Tag>.+?).";
Regex regex = new Regex(patten);
Match match=regex.Match("你好,我叫赵云,我是武将,擅长用枪.");
match.Groups["Name"].Value;
--------------------编程问答-------------------- string patten = @"(?is)你好,我叫([^,]+),我是([^,]+),擅长用([^.]+)\.";
Console.Write(item.Groups[1].Value + "  " +item.Groups[2].Value+"  "+item.Groups[3].Value);
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,