我想查找标题并为其提供id
属性。例如,我可能希望将id="my-new-id"
添加到<h2>
或<h2 class="class-1 class-2">
之类的内容。解析器方法如下所示:
def parse_toc(text)
p = []
text.split("\n").each do |line|
if line.match(/\<h2.*?\>/)
# need to add id
end
p.push line
end
return p.join("\n")
end
我无法将通配符作为字符串的一部分。如何在更改字符串周围的字符串时保留字符串中的通配符?
答案 0 :(得分:1)
请尝试以下操作:
puts '<h2>'.gsub(/<h2/, '\& id="my-new-id"')
# <h2 id="my-new-id">
puts '<h2 class="class-1 class-2">'.gsub(/<h2/, '\& id="my-new-id"')
# <h2 id="my-new-id" class="class-1 class-2">
BTW,使用正则表达式解析/修改html / xml是个坏主意。请参阅this answer。