我正在寫一個腳本來遷移一些博客文章。正則表達式來替換coderay代碼示例與紅寶石
每篇博文都可能包含縮減縮進的代碼示例。其中一些有第一行,以三個冒號和一個語言標識符開頭。
::: ruby
def test
puts "meh"
end
這些是更大的文字的一部分。
現在,對於任何給定的文本,我想找到這些代碼塊,並用此代替他們:
{% codeblock lang:ruby %}
def test
puts "meh"
end
{% endcodeblock %}
如果沒有三個冒號或語言標識,我想省略lang:<lang>
位。
我目前在如何寫一個正則表達式來找到這些難住。我只能想出這是惡法,而不是工作獸:
/^\s{4}(:::(\w+))+\n(\s{4}.*)\n^\s{0}$/mi
詳見http://www.rubular.com/r/kycM8SDQLb。
什麼是更新每篇文章的正確方法?我只是在處理正則表達式,Ruby代碼不會成爲問題。
謝謝。
看起來你的鏈接不起作用... – halfelf
@halfelf,嘗試[這個鏈接](http://www.rubular.com/r/2iUUWxlgIP),似乎是換行符問題不是特定的ruby,它依賴於瀏覽器。我原來的鏈接在Opera中工作。 – stema
這一個工程:)我在OSX 10.8上使用safari 6。 – halfelf