0

使用红宝石。拨弄http://rubyfiddle.com/riddles/c9c29

# code
term = "123 code ruby"
f_term = term.gsub(/\s/, "% %").insert(0, "%").insert(-1, "%")
puts f_term 

# output
%123% %code% %ruby%

你会如何重构我的f_term

4

2 回答 2

3
term.gsub(/\b/, '%')  # %123% %code% %ruby%

由于这使用单词边界,因此行为与您的行为略有不同。该/\b/方法将返回您将产生%cats%的输入cats%% %% %cats% %% %%

于 2013-02-19T03:36:01.067 回答
2

只使用单词边界

假设您真正想做的只是用百分号包围每个单词,那么您实际上并不需要用您的字符串做所有这些体操。只需使用String#gsub并替换您的单词边界。例如:

term = '123 code ruby'
f_term = term.gsub /\b/, '%'
# => "%123% %code% %ruby%"
于 2013-02-19T03:37:47.280 回答