[英]Find and replace variable in Ruby string
假設我有一個像這樣的字符串:
“ Lorem ipsum de color [post] 57 [/ post]坐在amet [post] 103 [/ post]解剖器上。”
我想查找所有出現的[post] * [/ post]並將其替換為由數字表示的帖子標題。 我最終會遇到這樣的事情:
“ Lorem ipsum de color憤怒的烏龜坐在amet Fuzzy Rabit解剖器上。”
我猜想將需要一個正則表達式...尋找正則表達式是什么以及如何使用。
String上的gsub方法具有方便的塊變化形式,在這里效果很好:
>> s = "Lorem ipsum de color [post]57[/post] sit amet [post]103[/post] desectator."
=> "Lorem ipsum de color [post]57[/post] sit amet [post]103[/post] desectator."
>> posts = {"57" => "Angry Turtle", "103" => "Fuzzy Rabit"}
=> {"57"=>"Angry Turtle", "103"=>"Fuzzy Rabit"}
>> s.gsub(/\[post\](\d+)\[\/post\]/) {|m| posts[$1] }
=> "Lorem ipsum de color Angry Turtle sit amet Fuzzy Rabit desectator."
不過,您的語法對正則表達式的友好程度也要低得多。 盡量不要使用括號和斜杠。
(在閱讀了更簡單的語法注釋之后)如果您的哈希像
posts = {57 => "Angry Turtle", 103 => "Fuzzy Rabit"}
或類似ehm的數組
posts = []
posts[57] = "Angry Turtle"
posts[103] = "Fuzzy Rabbit"
那為什么不去進行字符串插值呢?
"Lorem ipsum de color #{posts[57]} sit amet #{posts[103]} desectator."
然后您就可以出發了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.