我一直在努力想弄清楚如何解决这个问题。我有两种URL,我需要能够更新/增加页面的数值。
网址1:
forum-351-page-2.html
在上面,我想修改这个网页的n页。因此,我想生成具有给定范围的第1页到第30页的新网址。但这就是我想改变的一切。 page-n.html
网址2:
href="forumdisplay.php?fid=115&page=3
第二个网址不同但我觉得它更容易访问。
答案 0 :(得分:1)
第一个网址
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"
你可以为第二个网址做同样的事情。
url1.sub(/page=\d*$/, "page=#{x}")
答案 1 :(得分:1)
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"