Wen*_*Jun 1 ruby regex url ruby-on-rails
我正在使用 Rails 开发一个 Web 应用程序。出于美观目的,我需要将 %20 替换为 -
之前:http://localhost:3000/movies/2006/Apna%20Sapna%20Money%20Money
之后:http://localhost:3000/movies/2006/Apna-Sapna-Money-Money
无论如何我可以在 Rails 中实现这一点吗?
您应该URI.parse将其分成几部分,然后仅更改路径组件:
require 'uri'
u = URI.parse(url)
u.path = u.path.gsub('%20', '-')
url = u.to_s
Run Code Online (Sandbox Code Playgroud)
只需一个简单的gsub整个 URL 就可以正常工作,但是一点额外的偏执可能会为您节省一些混乱和痛苦。另外,如果您只是替换文字字符串而不是正则表达式,则可以使用字符串作为第一个参数gsub并避免一些转义问题:
该模式通常是正则表达式;如果作为字符串给出,则它包含的任何正则表达式元字符都将按字面解释,例如
'\\d'将匹配反斜杠后跟d, 而不是数字。