使用gsub(),如何在替换字符串中引用被替换字符串?
Posted
技术标签:
【中文标题】使用gsub(),如何在替换字符串中引用被替换字符串?【英文标题】:Using gsub(), how to refer to the replaced string in the replacing string? 【发布时间】:2013-08-17 06:29:21 【问题描述】:例如,我有一个文本块,其中包含字符串“image=filename.jpg”的多个实例,其中 filename.jpg 可以是任何文件名,我想将 中的所有内容替换为使用文件名找到图像的图像标签,例如Model.find_by_attachment_file_name("filename.jpg").
可以这样做吗?
编辑:
示例输入:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
image=some_file.png
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
期望的输出:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<img src="/system/attachments/model/some_file.png">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
使用Model.find_by_model_attachment_file_name("some_file.png").model_attachment.url
可以找到所需输出的图像标签的src属性
也就是说,类似于:
string.gsub(/image=.*/, "<image src=#ContentAttachment.find_by_content_image_file_name([???]).content_image.url(:main)")
其中 [???] 被替换为对替换为 gsub 的内容的引用。
或者,如何在 gsub 的第二个参数中引用第一个参数?
【问题讨论】:
请提供示例字符串和预期输出。 @HariKrishnan 示例添加 【参考方案1】:不是将第二个参数设置为 gsub,而是将一个块附加到 gsub 来完成这项工作。
string.gsub(/\image=(.*)\/)
# $1 will be "some_file.png"
"<image src=#ContentAttachment.find_by_content_image_file_name([$1]).content_image.url(:main)"
【讨论】:
以上是关于使用gsub(),如何在替换字符串中引用被替换字符串?的主要内容,如果未能解决你的问题,请参考以下文章