如何在Ruby中删除模式的同时找到模式并用XML标记替换它

时间:2013-05-06 16:20:32

标签: ruby regex

我想要做的是找到由下划线分隔的任何字母字符序列,例如:

L_L_L

然后把它们变成像:

这样的标签
<acronym>L L L</acronym>

首字母缩略词可以是任何长度,所以我在努力寻找所有实例。

1 个答案:

答案 0 :(得分:2)

假设您的样本首字母缩写代表“由下划线分隔的任何英文大写字母序列”,您可以执行以下操作:

def replace_acronyms(str)
  str.gsub(/\b([A-Z]+(?:_[A-Z]+)+)\b/) do |m,g1|
    '<acronym>' + $1.gsub(/_/,' ') + '</acronym>'
  end
end

replace_acronyms('Foo L_L_L bar.') # => "Foo <acronym>L L L</acronym> bar."