我正在写一个脚本来迁移一些博客文章。正则表达式来替换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