2016-05-31 33 views

回答

2

這是使用String#gsub非常基本的:

str = "d-m-Y H:i" 
str.gsub(/[a-z]/i, '%\0') 
# => "%d-%m-%Y %H:%i" 

在替換字符串'%\0'\0代表了整場比賽,在這種情況下是匹配的字母,所以這個說,「替換每個字母一個%後面跟着這封信。「

+0

我不知道'\ 0'。很高興知道。我探尋了尋找它的文檔,但空了。你知道它被記錄在哪裏嗎? (我確實在其他地方找到了它的參考資料,[這裏](http://www.regular-expressions.info/ruby.html))。 –

+0

@CarySwoveland Huh。它似乎沒有記錄。我不確定我是如何發現它的。 –

1
sorted 'd-m-Y H:i'.gsub(/[a-zA-Z]+/) { |sym| "%#{sym}" } 
+1

儘管此代碼可能會回答問題,但提供 關於_why_和/或_how_的其他上下文,它將回答 該問題將顯着改善其長期值 值。請[編輯]你的答案,添加一些解釋。 –

1
'd-m-Y H:i'.gsub(/(?=[a-z])/i, '%') 
    #=> "%d-%m-%Y %H:%i" 

這樣做是:「將每個空字符串替換爲小寫或大寫字母后加上字符'%'」。 (?=[a-z])是一個積極的向前看。

相關問題