正则表达式封装整行并环绕它

时间:2014-09-06 16:47:04

标签: ruby regex markdown pandoc

我可以找到围绕一条线而不是围绕和替换的例子,而且我对Regex来说有点新鲜。

我正在努力减轻我的降价,因此我不需要添加html只是为了让它以图片为中心。

使用pandoc,我显然需要使用DIV标签进行环绕和图像处理,以使其居中,正确对齐或任何其他标记。

我不想每次都输入,而是想用红宝石脚本预处理我的降价,并为我添加红宝石加入DIV。

所以我可以输入:

center![](image.jpg)

然后运行一个ruby脚本,将其更改为

<div class="center">
![](image.jpg)
</div>

我希望正则表达式找到“中心!”并摆脱“中心”这个词,并用DIV标签包围其余部分。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

使用gsub的一个小例子:

s = "a\ncenter![](image.jpg)\nb\n"
puts s.gsub(/^center(.*)$/, "<div class=\"center\">\n\\1\n</div>")

结果是:

a
<div class="center">
![](image.jpg)
</div>
b

应该让你入门。 (.*)会在中心后捕获内容,\\1会将其添加回替换内容。在这个例子中,我假设该项目本身就在一条线上 - ^表示一行的开始,$表示一行的结束。如果不是这种情况,您需要确定正则表达式的唯一性,以便它不会替换文本中“中心”的任何随机使用。