首页 新闻 会员 周边

帮忙找找 百度 和谷歌

0
悬赏园豆:50 [已解决问题] 解决于 2010-03-19 13:49

内容如下:

劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳

<a class="ff" id="dd0" href="http://www.baidu.com/" target="_blank"  name="dttl">

劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳

<a class="ff" id="dd1" href="http://www.google.com/" target="_blank"  name="dttl">

劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳

 

请问用c#书写 正则表达式 查找到 http://www.baidu.com/  和 http://www.google.com/

问题补充: 补充一点,内容中可能还有其它 A 标签,但我只要 A标签中含有 class="ff" 和 id="dd*"
hailibu的主页 hailibu | 初学一级 | 园豆:189
提问于:2010-03-18 16:09
< >
分享
最佳答案
0

string regexString=@"(?<=<a.*?class="ff"?.*?id="dd\d+?".*?href=")(.*?)(?=")";上面的表达式可以,结果如下图:

不知道是不是你想要的结果,不过这个表达式参class和id的顺序的有要求的,你可以把那两部分换成变量来替换就可以了,还有其它的需要,给我短消息就可以了!

希望能拿到分,谢!

收获园豆:20
chen eric | 初学一级 |园豆:4 | 2010-03-19 10:54
我的答案是: Regex reg = new Regex("id=\"dd[\\d]\" href=\"(?<link>[^\\s>]+)\"", RegexOptions.Compiled | RegexOptions.IgnoreCase);
hailibu | 园豆:189 (初学一级) | 2010-03-19 13:48
其他回答(1)
0

唉!郁闷了我一把,?=和?:没分清!下面的代码可供测试!

string str2 = "劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd0\" href=\"http://www.baidu.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd1\" href=\"http://www.google.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳";
Regex regex2 = new Regex(@"http://www\.(?:google|baidu)\.com/", RegexOptions.Multiline | RegexOptions.IgnoreCase);
List
<string> list2 = new List<string>();
foreach (Match match in regex2.Matches(str2))
{
if (match.Success)
list2.Add(match.Value);
}

 唉!最新需求修改,刚刚发布了个版本,但是方法太傻,俺使用了MatchEvaluator来做。完事后发现还有简单的,代码如下:

string str2 = "劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd0\" href=\"http://www.baidu.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳<a class=\"ff\" id=\"dd1\" href=\"http://www.google.com/\" target=\"_blank\" name=\"dttl\">劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳劲执行力保证业务稳";
Regex regex2 = new Regex(@"<a class=\""ff\"" id=\""dd[0-9]{1}\"" href=\""http://www\.(?:google|baidu)\.com/", RegexOptions.Multiline | RegexOptions.IgnoreCase);
List
<string> list2 = new List<string>();

Regex regex3
= new Regex(@"<a class=\""ff\"" id=\""dd[0-9]{1}\"" href=\""");
foreach (Match match in regex2.Matches(str2))
{
if (match.Success)
{
list2.Add(regex3.Replace(match.Value, ""));

}
}

 注意一点这个对class和id 以及href的顺序有要求,如果想要没有要求的,就需要对正则表达式扩展下。和目前写法一样,只是顺序改变就好!

收获园豆:30
西越泽 | 园豆:10775 (专家六级) | 2010-03-18 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册