我有一篇文章模型(article.rb):GSUB正則表達式刪除一個字符
class Article < ActiveRecord::Base
attr_accessible :name, :content
end
我有一個gsub
像這樣在我article.rb:
self.content.gsub!(/anylink[^']/i, "<%= link_to 'anylink', 'http://website.com/anylink' %>")
這替代了字"anylink"
在文章的文章中用"link_to 'anylink', 'http://website.com/anylink'"
創建一個自動鏈接。當已經有一個"link_to..."
時,它不會替代,因爲我在正則表達式的anylink之後排除了'
。
它可以工作,但問題是它會刪除"anylink"
後面的下一個字符。例如。它轉換:
"Have a look at anylink and see"
到
"Have a look at anylinkand see"
"anylink"
在這個二期現在是一個超鏈接,所以一切都只是有gsub
操作過程中刪除了丟失的空間罰款。任何想法爲什麼以及如何避免這種情況?
感謝。我沒有完全理解第一個解決方案,在行尾添加\\ 1並沒有改變行爲。我第一次編輯文章時,第二個建議正常,但第二次它將「link_to'anylink','http ...'替換爲'link_to'link_to'anylink',http ...',http ......「。這就是爲什麼我排除了gsub的執行,如果這個詞的末尾有一個'gsub!(/ anylink([^'])/ i等等......) – user929062
你沒有提到你在內容上多次運行替換。如果你這樣做,它會每次替換'anylink'字符串。所以鏈接裏面會有鏈接。 –
是的,抱歉沒有提到它。這就是爲什麼我有/ anylink([^'])/正則表達式原則上解決了這個問題。正如我所說,它也只是刪除了背後的角色,這是主要問題。 – user929062