ruby - 如何搜索、递增和替换 Ruby 字符串中的整数子字符串?

标签 ruby regex string replace gsub

我有很多这样的文档:

foo_1 foo_2

foo_3

bar_1 foo_4 ...

我想通过获取 foo_[X] 的所有实例并将它们中的每一个替换为 foo_[X+1] 来转换它们。在这个例子中:

foo_2 foo_3

foo_4

bar_1 foo_5 ...

我可以用 gsub 和一个 block 来做到这一点吗?如果不是,最干净的方法是什么?我真的在寻找一个优雅的解决方案,因为我总是可以暴力破解它,但我觉得有一些正则表达式技巧值得学习。

最佳答案

我(完全)不懂 Ruby,但类似这样的东西应该可以工作:

"foo_1 foo_2".gsub(/(foo_)(\d+)/) {|not_needed| $1 + ($2.to_i + 1).to_s}

LE:我真的成功了:http://codepad.org/Z5ThOvTr

关于ruby - 如何搜索、递增和替换 Ruby 字符串中的整数子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5993510/

相关文章:

ruby - 列出 Chef 中所有声明的包

java - Java正则表达式

C# 拆分字符串并在 If 语句中使用

c# - 为什么 TextInfo.ToTitleCase 在字母全部为大写的字符串上不能正常工作?

ruby - 将 Array#select 转换为 rails 4 中的事件记录查询

ruby - 如何在 Mac OS X Lion 上使用 rvm 安装 Maglev?

ruby-on-rails - 正则表达式 ruby​​ 对字母数字和数字有效

python - 从字符串中获取有效的 python 列表(javascript 数组)

javascript - 正则表达式在 HTML 文件中使用 getAttribute 批量替换 attribute[x]

ruby - Ruby中压缩给定字符串问题