求一正则表达式

yrf741676206 2011-11-02 10:16:13

<ul>
<li class="top"><img src="images/layout/left-nav-top.jpg" alt=""></li>
<li><img src="images/layout/leftnav-1.jpg" alt="">
<ul>
<li class="clickable"><a href="http://www.replicamaster.com/datejust-swiss-watches-c-110.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(128)</span>DateJust Swiss Watches</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/daydate-swiss-watches-c-111.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(41)</span>DayDate Swiss Watches</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/daytona-swiss-watches-c-112.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(123)</span>Daytona Swiss watches</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/submariner-swiss-watches-c-113.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(48)</span>Submariner Swiss</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/gmt-master-swiss-watches-c-116.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(30)</span>GMT Master II Swiss</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/explorer-swiss-watches-c-117.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(5)</span>Explorer II Swiss</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/yachtmaster-watches-swiss-c-114.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(9)</span>YachtMaster watches</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/milgauss-swiss-watches-c-118.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(6)</span>Milgauss Swiss Watches</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/rolex-lady-swiss-watches-c-109.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(31)</span>Rolex Lady Swiss</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/rolex-oyster-perpetual-c-159.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(16)</span>Rolex Oyster Perpetual</a></li>
<li class="clickable"><a href="http://www.replicamaster.com/sea-dweller-swiss-watches-c-160.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(1)</span>Sea Dweller Swiss</a></li>
</ul>
</li>
<li class="bottom"><img src="images/layout/left-nav-bottom.jpg" alt=""></li>
</ul>
</div>



从以上代码中获取
<a href="">里面的url链接
不包括<a href=""> 只要链接
拜请大神
...全文
120 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2011-11-02
  • 打赏
  • 举报
回复
            string str = @"<a href=""http://www.replicamaster.com/watches-catalog.php?replica_watch=watches-28072011-119-rm-.jpg&watch_name=Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch&image_number=Picture No. 1&watch_id=4311&watch_price=$249"" onclick=""return popup_prod(this, 'notes')""><img alt="""" hspace=""1"" src=""images/watches-28072011-119-rm-.jpg"" vspace=""1"" border=""0"" width=""48"" alt=""RM-4311, Picture #1: Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch details"" style=""border: 1px solid #E9F3FB"" 
onmouseover=""changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;""
onmouseout=""changeImages('hover_01', 'images/watches-28072011-118-rm-.jpg'); return true;""
onmousedown=""changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;""
onmouseup=""changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;""></A><a href=""http://www.replicamaster.com/watches-catalog.php?replica_watch=watches-28072011-120-rm-.jpg&watch_name=Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch&image_number=Picture No. 2&watch_id=4311&watch_price=$249"" onclick=""return popup_prod(this, 'notes')""><img alt="""" hspace=""1"" src=""images/watches-28072011-120-rm-.jpg"" vspace=""1"" border=""0"" width=""48"" alt=""RM-4311, Picture #2: Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch details"" style=""border: 1px solid #E9F3FB""
</td>'";
Regex reg = new Regex(@"(?is)(?<=onmouse(?:over|out|down|up)=""[^""]+)'([^,.]+\.[^'"")]+)[^""]+(?="")");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[1].Value);
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 return_false 的回复:]
C# code

StreamReader sr = new StreamReader(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string tempStr = sr.ReadToEnd();
str……
[/Quote]
谢谢大神 结贴了
膜拜
  • 打赏
  • 举报
回复
   StreamReader sr = new StreamReader(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string tempStr = sr.ReadToEnd();
string pattern = @"(?im)(?<=')images[^']+(?=')";
MatchCollection mc = Regex.Matches(tempStr, pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
foreach (Match m in mc)
{
//循环输出
string image = m.Value;//输出:images/watches-28072011-119-rm-.jpg
//string href = m.Groups["href"].Value;//链接地址
//string text = m.Groups["text"].Value.Substring(href.Length-1); ;//链接内容

}
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
两位大神 再帮忙看下
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
最后一个问题了

<a href="http://www.replicamaster.com/watches-catalog.php?replica_watch=watches-28072011-119-rm-.jpg&watch_name=Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch&image_number=Picture No. 1&watch_id=4311&watch_price=$249" onclick="return popup_prod(this, 'notes')"><img alt="" hspace="1" src="images/watches-28072011-119-rm-.jpg" vspace="1" border="0" width="48" alt="RM-4311, Picture #1: Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch details" style="border: 1px solid #E9F3FB"
onmouseover="changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;"
onmouseout="changeImages('hover_01', 'images/watches-28072011-118-rm-.jpg'); return true;"
onmousedown="changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;"
onmouseup="changeImages('hover_01', 'images/watches-28072011-119-rm-.jpg'); return true;"></A><a href="http://www.replicamaster.com/watches-catalog.php?replica_watch=watches-28072011-120-rm-.jpg&watch_name=Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch&image_number=Picture No. 2&watch_id=4311&watch_price=$249" onclick="return popup_prod(this, 'notes')"><img alt="" hspace="1" src="images/watches-28072011-120-rm-.jpg" vspace="1" border="0" width="48" alt="RM-4311, Picture #2: Replica Audemars Piguet Royal Oak Offshore Survivor Limited Edition 42mm Cream Dial Black Rubber Band Silver Watch details" style="border: 1px solid #E9F3FB"
</td>

获取这个当中的
连接和onmouseOver 和 onmousedown mouseup onmouseou中的 图片名字比如 images/watches-28072011-119-rm-.jpg
  • 打赏
  • 举报
回复

StreamReader sr = new StreamReader(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string tempStr = sr.ReadToEnd();
string pattern = @"(?im)<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(<span>[^<]*</span>)*(?<text>[\s\S]*?)</a>";
MatchCollection mc = Regex.Matches(tempStr, pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
foreach (Match m in mc)
{
//循环输出
string all_url = m.Value;//整个链接
string href = m.Groups["href"].Value;//链接地址
string text = m.Groups["text"].Value;//链接内容

}
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
我先去试试 在程序里面能不能得到
搞定了来结贴 嘿嘿
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huangwenquan123 的回复:]
引用 1 楼 yrf741676206 的回复:
标题也要获取
比如
<li class="clickable"><a href="http://www.replicamaster.com/datejust-swiss-watches-c-110.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(128)</span>DateJust ……
[/Quote]
黄大师的得到了 嘿嘿
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
两位大神早啊

Return_false大神的得到了连接
但是那个
string text = m.Groups["text"].Value;//链接内容
这个得到是包括了<span>(128)</span>

能不在只得到
比如DateJust Swiss Watches这个 不要<span>(128)</span>呢
huangwenquan123 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yrf741676206 的回复:]
标题也要获取
比如
<li class="clickable"><a href="http://www.replicamaster.com/datejust-swiss-watches-c-110.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(128)</span>DateJust Swiss Watches</a></li>

……
[/Quote]
            string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));
Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>.*?</span>((?:(?!</a).)*)");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[2].Value + "==" + m.Groups[3].Value);
  • 打赏
  • 举报
回复

StreamReader sr = new StreamReader(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string tempStr = sr.ReadToEnd();
string pattern = @"(?im)<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>[\s\S]*?)</a>";
MatchCollection mc = Regex.Matches(tempStr, pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
foreach (Match m in mc)
{
//循环输出
string all_url = m.Value;//整个链接
string href = m.Groups["href"].Value;//链接地址
string text = m.Groups["text"].Value;//链接内容

}
huangwenquan123 2011-11-02
  • 打赏
  • 举报
回复
            string str = File.ReadAllText(@"E:\1.txt", Encoding.GetEncoding("gb2312"));
Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[2].Value);
yrf741676206 2011-11-02
  • 打赏
  • 举报
回复
标题也要获取
比如
<li class="clickable"><a href="http://www.replicamaster.com/datejust-swiss-watches-c-110.html?osCsid=e77bf8d8b0c98afd8b58d386069366d3"><span>(128)</span>DateJust Swiss Watches</a></li>

获取这个当中的DateJust Swiss Watches

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧