【问题标题】:Is there a gsub alternative for ruby that can run a method everytime a match is made?ruby 是否有一个 gsub 替代品可以在每次匹配时运行一个方法?
【发布时间】:2012-04-03 15:44:58
【问题描述】:

我需要运行一个脚本来重写一个html文件的文件夹路径,会有很多匹配,并且需要计算替换字符串,比如

"Html string".gsub( /images/([a-zA-Z0-9\-]+)/, "/images/#{replacement_method($1)}/" )

唯一的问题是 gsub,至少据我所知,它只会运行一次 replacement_method(),我需要它每次运行,因为所需的替换字符串发生在文件夹字符串中。

有没有办法使用 gsub 进行这项工作?类似于 wordpress 中的替换功能? 还有其他现实的方法吗?

【问题讨论】:

    标签: ruby regex gsub


    【解决方案1】:

    你必须使用一个块:

    "Html string".gsub( /images/(folder)/) { |match| "/images/#{replacement_method(match)}/" }
    

    将为字符串中的每个匹配项调用该块。

    【讨论】:

      猜你喜欢
      • 2011-10-10
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多