我在構建一個類似tweet的系統,其中包含@mentions和#hashtags。現在,我需要一個鳴叫會來這樣的服務器:從Rails中的字符串中刪除特定的正則表達式
hi [@Bob D](member:Bob D) whats the deal with [#red](tag:red)
,並在數據庫中保存爲:
hi @Bob P whats the deal with #red
我的代碼是什麼樣的流程在我的腦海中,但無法實現它的工作。基本上,我需要執行以下操作:
- 掃描字符串任何
[@...]
(一個樣結構陣列,其具有@
開始) - 狀結構的陣列後刪除paranthesis(因此對於
[@Bob D](member:Bob D)
,除去一切在paranthesis) - 刪除周圍與
@
(意思是開頭的子串的括號中,刪除從[]
[@...]
)
我也將需要爲#
做同樣的事情。我幾乎可以肯定,這可以通過使用正則表達式slice!
方法來完成,但我真的很難提出需要的正則表達式和控制流。 我認爲這將是這樣的:
a = "hi [@Bob D](member:Bob D) whats the deal with [#red](tag:red)"
substring = a.scan <regular expression here>
substring.each do |matching_substring| #the loop should get rid of the paranthesis but not the brackets
a.slice! matching_substring
end
#Something here should get rid of brackets
與上面的代碼的問題是,我想不通的正則表達式,並沒有擺脫括號。
請閱讀「[mcve]」。你無法弄清楚正則表達式?那麼,向我們展示你的嘗試,以便我們能夠糾正它,而不是拋出代碼。 SO在這裏是爲了幫助你,但更多的是在未來幫助其他人類似的問題,但除非你展示你的嘗試,否則我們不能這樣做。沒有你的企圖的證據,看起來你沒有試圖讓我們爲你寫。 –
你爲什麼要把''Bob D''改成''「Bob P」'? –