如何用正则将字符串里的数据提取出来?
如:你好,我叫赵云,我是武将,擅长用枪.
你好,我叫黄忠,我是武将,擅长用弓箭.
你好,我是诸葛亮,我是文官.
上面一行行字符串,如何用正则把蓝色字的数据提取出来?
--------------------编程问答-------------------- 你这好像没啥规律 --------------------编程问答-------------------- 最后一行错了,有规律,都是[你好,我叫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>.+?).";--------------------编程问答-------------------- string patten = @"(?is)你好,我叫([^,]+),我是([^,]+),擅长用([^.]+)\.";
Regex regex = new Regex(patten);
Match match=regex.Match("你好,我叫赵云,我是武将,擅长用枪.");
match.Groups["Name"].Value;
Console.Write(item.Groups[1].Value + " " +item.Groups[2].Value+" "+item.Groups[3].Value);
补充:.NET技术 , C#