我正在编写一个脚本来迁移一些博客文章。
每篇博文都可能包含降价缩进的代码示例。其中一些有第一行,以三个冒号和一个语言标识符开头。
::: 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 代码不会有问题。
谢谢。