我一直很难找出如何着手解决这个问题。我有2种url,我需要能够更新/增加页面的数值。
Url 1:forum-351-page-2.html
在上面,我想修改n个页面的url。因此,我想生成具有给定范围的新url,例如page-1到page-30。但这就是我想要改变的。page-n.html
Url 2:href="forumdisplay.php?fid=115&page=3
第二个url是不同的,但我觉得它更容易访问。
R = /
(?: # begin non-capture group
(?<=-page-) # match string in a positive lookbehind
d+ # match 1 or more digits
(?=.html) # match period followed by 'html' in a positive lookahead
) # close non-capture group
| # or
(?: # begin non-capture group
(?<=&page=) # match string in a positive lookbehind
d+ # match 1 or more digits
z # match end of string
) # close non-capture group
/x # free-spacing regex definition mode
def update(str, val)
str.sub(R, val.to_s)
end
update("forum-351-page-2.html", 4)
#=> "forum-351-page-4.html"
update("forumdisplay.php?fid=115&page=3", "4")
#=> "forumdisplay.php?fid=115&page=4"
第一个url
url1 = "forum-351-page-2.html"
(1..30).each do |x|
puts url1.sub(/page-d*/, "page-#{x}")
end
这将输出
"forum-351-page-1.html"
"forum-351-page-2.html"
"forum-351-page-3.html"
...
"forum-351-page-28.html"
"forum-351-page-29.html"
"forum-351-page-30.html"
你可以对第二个url做同样的事情。
url1.sub(/page=d*$/, "page=#{x}")