http://nt.eepw.com.cn/showtopic-4.aspx
http://nt.eepw.com.cn/showtopic-4-2.aspx#24
http://nt.eepw.com.cn/showtopic.aspx?page=end&topicid=4#24(注,end指尾页,也是一种写法)
http://nt.eepw.com.cn/showtopic.aspx?page=2&topicid=4#24
大家可以看到下面四中网址形式都是bbs的帖子页面,但是网址有所不同
网址如下
http://nt.eepw.com.cn/showtopic-4.aspx
http://nt.eepw.com.cn/showtopic-4-2.aspx#24
http://nt.eepw.com.cn/showtopic.aspx?page=end&topicid=4#24(注,end指尾页,也是一种写法)
http://nt.eepw.com.cn/showtopic.aspx?page=2&topicid=4#24
我要求不管网址采取那种方式,我都可以将他的网址的分页部分找到,并修改。
并都修改成这种形式http://nt.eepw.com.cn/showtopic-帖子编号-第几页.aspx也就是说随便给你上面的四种网址,能帮我替换成我要求的网址
注:忽略#后面的字符
比如
http://nt.eepw.com.cn/showtopic-4.aspx
应该改成
http://nt.eepw.com.cn/showtopic-4-1.aspx(因为是第一页)
另外:还能进行替换
比如把
http://nt.eepw.com.cn/showtopic-4-1.aspx
替换成
http://nt.eepw.com.cn/showtopic-4-7.aspx(也就是变成第七页)
也就是写
funtion goPagenum(pagenum)
{
把当前的网址中的页码替换成另一个页码的,然后进行跳转
}

解决方案 »

  1.   

    http://nt.eepw.com.cn/showtopic.aspx?page=2&topicid=4#24
    应该改成
    http://nt.eepw.com.cn/showtopic-4-2.aspxhttp://nt.eepw.com.cn/showtopic.aspx?page=end&topicid=4#24
    也要改成
    ??我也没有办法了,呵呵,end这种表示方法太奇怪了。暂时不解决也行。
      

  2.   

    不要url重写。只说用正则表达式去替换,其实你说的url重写也要用到正则。
    我现在在页面里面用javascript来替换网址。就是正则有点不过关。实现不了这4种网址的替换。
      

  3.   

    tryhttp://nt\.eepw\.com.cn/showtopic(-(?<topicid>\d+))?(-(?<page>\d+))?(\.aspx\?page=(?<page>\d+|end)&topicid=(?<topicid>\d+))?所给例子四种网址中,捕获组topicid和page匹配结果分别为4,4,24,end4,2一个正则可以匹配,但是第一页和end需要在替换之前判断一下,其余页可以直接替换
      

  4.   

    http://nt\.eepw\.com\.cn/((showtopic-(?<topicid>\d+)(-(?<page>\d+))?.aspx)|(showtopic.aspx\?(&?page=(?<page>\w+)|&?topicid=(?<topicid>\d+)){2}))http://nt.eepw.com.cn/showtopic-4.aspx
    topicid=4, page=
    http://nt.eepw.com.cn/showtopic-4-2.aspx#24
    topicid=4, page=2
    http://nt.eepw.com.cn/showtopic.aspx?page=end&topicid=4#24
    topicid=4, page=end
    http://nt.eepw.com.cn/showtopic.aspx?page=2&topicid=4#24
    topicid=4, page=2
    http://nt.eepw.com.cn/showtopic.aspx?topicid=4&page=2#24
    topicid=4, page=2