我想通过gsub在ruby中找到文本文件中的文本,并像这样更改它:
我在主文件中的文字:
set description "alas-cd002-ak"
我想将其更改为以下内容:
<desc>alas-cd002-ak</desc>
所以我用了下面的命令,但是没有用:
text.gsub!(/\sset\sdescription\s"(?<name>^[a-zA-Z0-9_.-]*$)"/,'<desc>\k<name></desc>')
请帮助我修复我的gsub
代码。我也是Ruby的新手。
答案 0 :(得分:2)
最好的方法是使用正则表达式,就像@Wiktor在注释中所做的那样。这只是演示将正则表达式与枚举器一起使用的方法。
str = "set description \"alas-cd002-ak\""
enum = ['<desc>', '</desc>'].cycle
#=> #<Enumerator: ["<desc>", "</desc>"]:cycle>
str.gsub('"') { enum.next }
#=> "set description <desc>alas-cd002-ak</desc>"
注意:显示puts str
set description "alas-cd002-ak"