日期:2014-05-18  浏览次数:20547 次

如何使用正则表达式替换网页内<a href....</a>中的内容为指定内容?
如何使用正则表达式替换网页内<a href....</a>中的内容为指定内容?
要求是:
1>文字必须处于单个的<a href开头与</a>之间并且处于>和<之间(因为在>之前有可能也会有汉字)
2>若标记显示文字长度多于3个字符则不替换任何内容(汉字和英文均视为1个字符)
3>若标记显示文字长度小于等于3个字符(例如 新闻)则将标记头尾去除,只保留中间内容(汉字和英文均视为1个字符)
例如:
  <li><a href="http://news.qq.com" target="_top">新闻</a></li>
  <li><a href="http://ent.qq.com" target="_top">娱乐</a></li>
  <li><a href="http://finance.qq.com" target="_top">财经</a></li>
  <li><a href="http://auto.qq.com" target="_top">汽车</a></li>
  <li><a href="http://tech.qq.com" target="_top">全球通</a></li>
  <a href="http://sports.qq.com/a/20071009/000106.htm" target="_blank">姚明夺MVP赔率联盟第四</a>
  <a href="http://app.qq.com/exam/2191/2191_42015.htm" target="_blank">是什么阻碍你炒股赚钱</a>
  <a href="http://tech.qq.com/a/000016.htm" class="s_end" target="_blank">9月10大恶意软件出炉</a>
  <a href="http://auto.qq.com/zt/2007/newmazad6/index.htm" target="_blank">新马自达6的四大猜想</a>
使用正则后则显示如下:
  新闻
  娱乐
  财经
  汽车
  全球通
  <a href="http://sports.qq.com/a/20071009/000106.htm" target="_blank">姚明夺MVP赔率联盟第四</a>
  <a href="http://app.qq.com/exam/2191/2191_42015.htm" target="_blank">是什么阻碍你炒股赚钱</a>
  <a href="http://tech.qq.com/a/000016.htm" class="s_end" target="_blank">9月10大恶意软件出炉</a>
  <a href="http://auto.qq.com/zt/2007/newmazad6/index.htm" target="_blank">新马自达6的四大猜想</a>

请问如何实现?


------解决方案--------------------
帮顶,学习一下。
------解决方案--------------------

C# code
string result = Regex.Replace(str, @"<a[^>]*>([\s\S]{0,3})</a>", "$1", RegexOptions.IgnoreCase);