我被正则弄的很郁闷...
功能需求是在js中使用字串的replace函数替换掉原网页中的部分内容:原html内容:
<tr>
  <td width="470" height=25><img src="img/a.gif">
    <a href=t_view.asp?id=11111 target="_blank">
    <strong><font class=f14>这里是标题</font></strong></a></td>
  <td width="80" align=right><font color=#000000>2009-5-23</font></td>
</tr>
替换后变为:
<tr>
  <td width="470" height=25><img src="img/a.gif">
    <a href=t_view.asp?id=11111 target="_blank">
    <strong><font class=f14>这里是标题</font></strong>@@@@@2009-5-23</a></td>答案是:
content.replace(/<tr>[\s\S]*?(<a href=\S+.*?>.*?)<\/a>[\S\s]*?<td width="80" align=right>(.*?)<\/td>/ig,"$1@@@@@$2</a>");
content中包含了上面的原html代码。我的问题是:
1、上面答案中使用的正则能否详细解释下:如[\s\S]、*?之类的,还有在replace的第二个参数中$1和$2是怎么定义的。
2、感觉以前学的正则没怎么困难,a-zA-Z之类的,这里的怎么会这么难?有好的资料可以提高吗?Hug and KKKKKKiss~

解决方案 »

  1.   

    [\s\S]*?为任意字符\s代表空格,\S非空格字符,合起来就是任意字符
    第一个括号匹配的内内容就是$1,一次类推,$1@@@@@$2此处的目的是将两个括号的内容提出然后中间加入@@@@字符返回
    具体可看我博客里面转贴的正则表达式的学习
      

  2.   

    替换而已,比字符串替换难不了多少。a-zA-Z是指所有的英文字母。
      

  3.   

    $   匹配字符串的结束
    正则表达式30分钟入门教程
    http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
      

  4.   

    可以进我的QQ空间看一下。http://user.qzone.qq.com/363699086?ADUIN=363699086&ADSESSION=1258003503&ADTAG=CLIENT.QQ.2455_MyInfo_PersonalInfo.0&ptlang=2052
      

  5.   

    http://user.qzone.qq.com/363699086
      

  6.   

    谢谢2楼的xiaolei1982~