gpt4 book ai didi

ruby - 如何使用正则表达式将字符串转换为 HTML 标记?

转载 作者:数据小太阳 更新时间:2023-10-29 08:38:20 27 4
gpt4 key购买 nike

我想使用正则表达式将使用自定义语法(我自己的;我正在创建自己的 markdown 标记)编写的 Markdown 字符串转换为 HTML 标记。我正在使用 redcarpet 自定义渲染器。

# From
[image:left:xyz]
[xyz]: http://foo.com

# To
<img src="http://foo.com" class="left">

我开始写一个正则表达式,但我发现它很难。我意识到我在尝试先跑再走,但正则表达式真的很难,即使在尝试学习它们的过程中,这个问题也可能需要我几天的时间。

主要问题是第二个参数,在本例中为 left,它映射到图像类属性:它也可以是 rightfull,或传播

另一个问题是可能有多个字符串,而不仅仅是一个:

string.gsub \A\[(image)(:left)|(:right)(:id) do
image_tag $1, class: $2 # not sure how to match $1, and $2...
end

最佳答案

这会非常复杂,但您可以从以下方面着手:

string = '[image:left:xyz]
[xyz]: http://foo.com

[image:right:yzx]
[yzx]: http://foo.com'

urls = {}

string.gsub!(/\[([^:]*)\]: (.*)\s?$/) do
urls[$1] = $2 # grabbing all urls and their ids
'' # replacing them with empty string
end

string.gsub!(/\[image:(.*):(.*)\]/) do
css_class = $1
url = urls[$2]

image_tag(url, class: css_class)
end

string # =>
# <img src='http://foo.com' class='left' />

# <img src='http://foo.com' class='right' />

欢迎询问更多详情。

关于ruby - 如何使用正则表达式将字符串转换为 HTML 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20809472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com