正则表达式匹配问题 div[\w\W]+strong\>([^\<]+)\<[\w\W]+date\"\>([^\<])+\<[\w\W]+nianhualv\"\>([^\<]+)\<[\w\W]+qiri\"\>([^\<]+)\<[\w\W]+\/div\>没测试,不能确定正确性 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则匹配的时候,应该先匹配:<div class="con"> xxxx <div> 这段内容吧。然后再匹配里面的值。 string pattern = ">([^< ].*?)<";MatchCollection mc = Regex.Matches(content, pattern);foreach (Match m in mc){string val = m.Groups[m.Groups.Count - 1].ToString();} 或者直接把前后的尖角号去掉,string pattern = "(?<=\\>)([^< ].*?)(?=\\<)", 然后直接迭代mc,去m的值就ok了 static void Main(string[] args) { string regexStr = ">([^< ].*?)<"; string str = @"<div class=""con""> <p><strong>值1</strong><span class=""date"">值2</span></p> <p><em class=""nianhualv"">值3</em><span class=""qiri"">值4</span></p> <p><a class=""doit"" href=""http://www.baidu.com/fud/chase.htm"" target=""_blank"">值5</a></p> </div>"; Console.WriteLine(str); List<string> res = Search(str, regexStr); foreach (string a in res) { Console.WriteLine(a); } Console.ReadKey(); } { List<string> res = new List<string>(); Regex r = new Regex(regexStr, RegexOptions.None); Match mc = r.Match(str); while (mc.Success) { Group g = mc.Groups[1]; res.Add(g.Value); mc = mc.NextMatch(); } return res; } 前面是使用办法后面是方法:public static List<string> Search(string str, string regexStr) 写了个通用的^(?:(?'open'<)[^<>]+(?'-open'>)(?'cont'[^<>]*))*(?(open)(?!))$测试通过:要求标签一定要有开始和结尾:<div></div> ok</div> no 当前上下文中不存在"panel1" VS报表向导中排列字段时,如何同时选择拖放多个字段 大家好,我是新手,有点学习上的问题想问一下你们 C#中点名系统 Remoting的问题 用模式窗体显示进度 怎么验证拥护输入的是半角数字还是全角数字呢? 我想把dataset里面的数据导出到excel。为什么数据没有插入阿? C#中如何以独占的方式打开一个文件? 免费电脑电子图书大下载,大家来看阿 DataTable 加载 C# 对象不能从 DBNull 转换为其他类型
string pattern = ">([^< ].*?)<";
MatchCollection mc = Regex.Matches(content, pattern);
foreach (Match m in mc)
{
string val = m.Groups[m.Groups.Count - 1].ToString();
}
static void Main(string[] args)
{
string regexStr = ">([^< ].*?)<";
string str = @"<div class=""con""> <p><strong>值1</strong><span class=""date"">值2</span></p> <p><em class=""nianhualv"">值3</em><span class=""qiri"">值4</span></p> <p><a class=""doit"" href=""http://www.baidu.com/fud/chase.htm"" target=""_blank"">值5</a></p> </div>";
Console.WriteLine(str);
List<string> res = Search(str, regexStr);
foreach (string a in res)
{
Console.WriteLine(a);
}
Console.ReadKey();
} {
List<string> res = new List<string>();
Regex r = new Regex(regexStr, RegexOptions.None);
Match mc = r.Match(str);
while (mc.Success)
{
Group g = mc.Groups[1];
res.Add(g.Value);
mc = mc.NextMatch();
}
return res;
}
public static List<string> Search(string str, string regexStr)
^(?:(?'open'<)[^<>]+(?'-open'>)(?'cont'[^<>]*))*(?(open)(?!))$
测试通过:
要求标签一定要有开始和结尾:
<div></div> ok
</div> no