string str = "<div class=""detail_r1_title""><H1>测试品</H1></div>";
Regex re = new Regex(@"<div class=""detail_r1_title""><H1>\S+</H1></div>", RegexOptions.None);
Match ma = re.Match(str);
//ma.Groups[0].Value;
为啥ma.Groups.Count的结果是1,并且值为<div class="detail_r1_title"><H1>测试品</H1></div>
而并不是我想要的 “测试品”
------解决方案--------------------------------------------------------
Regex re = new Regex(@"<div class=""detail_r1_title""><H1>([\\S\\s]*?)</H1></div>", RegexOptions.None);
这个样子应该就可以了····
------解决方案--------------------------------------------------------
如果匹配正确(完整匹配的话)的ma.Groups[0]是肯定有的。
改成这样 Regex re = new Regex(@"<div class=""detail_r1_title""><H1>(\S+)</H1></div>", RegexOptions.None);
ma.Groups[1].Value;//测试品
------解决方案--------------------------------------------------------
你这个根本就没分组,即使分组,Groups[0]是全匹配的
Regex re = new Regex(@"<div class=""detail_r1_title""><H1>(?<value>\S+)</H1></div>"
去ma.Groups[1]
- C# code
string source = @"<div class=""detail_r1_title""><H1>测试品</H1></div>"; Regex reg = new Regex(@"<div class=""detail_r1_title""><H1>(?<value>.*)</H1></div>"); Match mm = reg.Match(source); MessageBox.Show(mm.Groups["value"].Value;
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
你的正则不对。。。
改成:
Regex re = new Regex(@"(?<=<div class=""detail_r1_title""><H1>).*?(?=</H1></div>)", RegexOptions.None);