首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

在一个字符串下同时执行多次搜索替代操作

2012-12-28 
在一个字符串上同时执行多次搜索替代操作Here is number #123.gsub(/[a-z]/i, #).gsub(/#/, P)?这段

在一个字符串上同时执行多次搜索替代操作

"Here is number #123".gsub(/[a-z]/i, '#').gsub(/#/, 'P')

?

这段代码将会输出:PPPP PP PPPPPP P123,我现在想把所有的字母替换成#,同时将#替换成P,那该怎么办呢?

?

现在提供一个方法,可以在一个字符串上同时执行多次搜索替代操作。

?

class String  def mgsub(key_value_pairs = [].freeze)    regexp_fragments = key_value_pairs.collect{|k, v| k}    gsub(Regexp.union(*regexp_fragments)) do |match|      key_value_pairs.detect{|k, v| k =~ match}[1]    end  endend

?

再看一下调用

"Here is number #123".mgsub([[/[a-z]/i, '#'], [/#/, 'P']])

?

后的输出结果:#### ## ###### P123

热点排行