新手问题 [已解决] 请教一个 ruby 的一个正则表达式匹配问题

chiangdi · 2014年11月13日 · 最后由 DavidWei 回复于 2014年11月18日 · 1631 次阅读

现在有一些网址,例如: http://www.sell001.com/23389 http://www.sell001.com/116633

就是com 后面接一个斜线加一串数字, 现在我想用正则表达式把那个/换成 /itemlist.htm?id= 换成之后上面那两个网址就变成了:

http://www.sell001.com/itemlist.htm?id=23389 http://www.sell001.com/itemlist.htm?id=116633

我本来想这样写的:

a = 'http://www.sell001.com/23389'
b = a.sub(/[\/]/, '/itemlist.htm?id=')

但是这样是不对的,因为它把 http:后面那两个斜线也转换了。 求教这种情况下该怎样做?

/com[\/]/ 这样写正则就好,要确保根域名一定是 com,如果是 org 或其他就不好用了

#1 楼 @richard_ma 非常感谢,工作得很好,需求只要 com。

@chiangdi 不客气,请再标题前加 [已解决]

b=a.sub(/\d+$/, /itemlist.htm?id=\1') 即可。 参考:String.sub

需要 登录 后方可回复, 如果你还没有账号请 注册新账号