日期:2014-05-17  浏览次数:20890 次

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

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


上面一行行字符串,如何用正则把蓝色字的数据提取出来?

------解决方案--------------------

            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 = @"(?is)你好,我叫([^,]+),我是([^,]+),擅长用([^.]+)\.";
Console.Write(item.Groups[1].Value + "  " +item.Groups[2].Value+"  "+item.Groups[3].Value);