From: x1 Date: 2006-09-26T10:52:16+09:00 Subject: Re: Regexp Question / gsub Question Thanks so much Mike. On 9/25/06, Mike Stok wrote: > > On 25-Sep-06, at 9:35 PM, x1 wrote: > > > Hehe.. Awesome!!!!!!! > > > > Ok.. one last thing.. : key being a variable. > > > > How would you knock this one out? Instead of the string "key", lets > > repace the occurance of the key variable, which in this case is "key" > > but could be another string.. > > > > key = "key" > > wrapper = ["", ""] > > strings = ["blahblahKEY", "asdfasdfkey", "Keyasdf", "xxkEYxx", > > "xxKeyxxKEY"] > > > > strings.each do |string| > > puts string.gsub(/key/i) {|match| "#{match}"} > > end > > > > The simple, but incomplete/unsafe, approach might be: > > thing = 'key' > strings.each do |string| > puts string.gsub(/#{thing}/i) {|match| "#{match}"} > end > > If "thing" includes regex metacharacters then you might want to > consider looking at Regexp::escape and figuring out how it could help > those cases. > > Hope this helps, > > Mike > > > > > On 9/25/06, Mike Stok wrote: > >> > >> On 25-Sep-06, at 9:27 PM, x1 wrote: > >> > >> > Perhaps someone could help with this example? I need to iterate > >> > through each of the items in strings and wrap any case insensitive > >> > occurrence of "key" with . If each string was always > >> just the > >> > word "key" I would use something like wrapper.join("key") but.. > >> I have > >> > other text surrounding the "key", various cases and potentially > >> > multiple occurrences. Thank you in advance. > >> > > >> > > >> > wrapper = ["", ""] > >> > strings = ["blahblahKEY", "asdfasdfkey", "Keyasdf", "xxkEYxx", > >> > "xxKeyxxKEY"] > >> > > >> > strings.each do |string| > >> > # would like to print the string replacing "key" (case > >> > insensitive) with "key"(in its original case) > >> > end > >> > > >> > > >> > # Ideally, would output: > >> > # "blahblahKEY" > >> > # "asdfasdfkey" > >> > # "Keyasdf" > >> > # "xxkEYxx" > >> > # "xxKeyxxKEY" > >> > > >> > >> #!/usr/bin/env ruby > >> > >> wrapper = ["", ""] > >> strings = ["blahblahKEY", "asdfasdfkey", "Keyasdf", "xxkEYxx", > >> "xxKeyxxKEY"] > >> > >> strings.each do |string| > >> puts string.gsub(/key/i) {|match| "#{match}"} > >> end > >> > >> Maybe? > >> > >> Hope this helps, > >> > >> Mike > >> > >> -- > >> > >> Mike Stok > >> http://www.stok.ca/~mike/ > >> > >> The "`Stok' disclaimers" apply. > >> > >> > >> > >> > >> > >> > > > > > > -- > > Mike Stok > http://www.stok.ca/~mike/ > > The "`Stok' disclaimers" apply. > > > > > >