使用正则表达式替换 ruby 中的特定文本
replace specific text in ruby using regex
在 ruby 中,我试图用新数字替换下面 url 的 粗体 部分:
/ShowForum-g1-i12105-o20-TripAdvisor_Support.html
我将如何定位和替换 -o20-
使用 -o30- 或 -o40- 或 -o1200-,同时保留 url 的其余部分
完整? urls 可以是任何东西,但我希望能够找到 -o20- 的这个确切模式并将其替换为我想要的任何数字。
提前谢谢你。
希望这会奏效。
url = "/ShowForum-g1-i12105-o20-TripAdvisor_Support.html"
url = url.gsub!(/-o20-/, "something_to_replace")
puts "url is : #{url}"
输出:
sh-4.3$ ruby main.rb
url is : /ShowForum-g1-i12105something_to_replaceTripAdvisor_Support.html
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
上面的代码片段会将数字替换为(本身 + 10)。
url = '/ShowForum-g1-i12105-o20-TripAdvisor_Support.html'
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
#⇒ "30"
url
#⇒ "/ShowForum-g1-i12105-o30-TripAdvisor_Support.html"
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
#⇒ "40"
url
#⇒ "/ShowForum-g1-i12105-o40-TripAdvisor_Support.html"
替换成你想要的数字:
url[/(?<=-o)\d+(?=-)/] = "500"
url
#⇒ "/ShowForum-g1-i12105-o500-TripAdvisor_Support.html"
更多信息:String#[]=
。
在 ruby 中,我试图用新数字替换下面 url 的 粗体 部分:
/ShowForum-g1-i12105-o20-TripAdvisor_Support.html
我将如何定位和替换 -o20- 使用 -o30- 或 -o40- 或 -o1200-,同时保留 url 的其余部分 完整? urls 可以是任何东西,但我希望能够找到 -o20- 的这个确切模式并将其替换为我想要的任何数字。
提前谢谢你。
希望这会奏效。
url = "/ShowForum-g1-i12105-o20-TripAdvisor_Support.html"
url = url.gsub!(/-o20-/, "something_to_replace")
puts "url is : #{url}"
输出:
sh-4.3$ ruby main.rb
url is : /ShowForum-g1-i12105something_to_replaceTripAdvisor_Support.html
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
上面的代码片段会将数字替换为(本身 + 10)。
url = '/ShowForum-g1-i12105-o20-TripAdvisor_Support.html'
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
#⇒ "30"
url
#⇒ "/ShowForum-g1-i12105-o30-TripAdvisor_Support.html"
url[/(?<=-o)\d+(?=-)/] = ($&.to_i + 10).to_s
#⇒ "40"
url
#⇒ "/ShowForum-g1-i12105-o40-TripAdvisor_Support.html"
替换成你想要的数字:
url[/(?<=-o)\d+(?=-)/] = "500"
url
#⇒ "/ShowForum-g1-i12105-o500-TripAdvisor_Support.html"
更多信息:String#[]=
。