簡體   English   中英

在Ruby字符串中查找並替換變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM