⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 17 - replacing multiple patterns in a single pass.rb

📁 O Reilly Ruby Cookbook source code
💻 RB
字号:
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#---"GO HOME!".mgsub([[/.*GO/i, 'Home'], [/home/i, 'is where the heart is']])# => "Home is where the heart is!"#---"Here is number #123".mgsub([[/[a-z]/i, '#'], [/#/, 'P']])# => "#### ## ###### P123"#---"FOO bar".gsub(/foo/i, "The bar").gsub(/bar/m, "result")# => "The result result""Here is number #123".gsub(/[a-z]/i, "#").gsub(/#/, "P")# => "PPPP PP PPPPPP P123"#---"between".mgsub(/ee/ => 'AA', /e/ => 'E')        # Bad code# => "bEtwEEn""between".mgsub([[/ee/, 'AA'], [/e/, 'E']])      # Good code# => "bEtwAAn"#---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -