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 <b> </b>. 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 = ["<b>", "</b>"] > strings = ["blahblahKEY", "asdfasdfkey", "Keyasdf", "xxkEYxx", > "xxKeyxxKEY"] > > strings.each do |string| > # would like to print the string replacing "key" (case > insensitive) with <b>"key"(in its original case)</b> > end > > > # Ideally, would output: > # "blahblah<b>KEY</b>" > # "asdfasdf<b>key</b>" > # "<b>Key</b>asdf" > # "xx<b>kEY</b>xx" > # "xx<b>Key</b>xx<b>KEY</b>" > #!/usr/bin/env ruby wrapper = ["<b>", "</b>"] strings = ["blahblahKEY", "asdfasdfkey", "Keyasdf", "xxkEYxx", "xxKeyxxKEY"] strings.each do |string| puts string.gsub(/key/i) {|match| "<b>#{match}</b>"} end Maybe? Hope this helps, Mike -- Mike Stok <mike / stok.ca> http://www.stok.ca/~mike/ The "`Stok' disclaimers" apply.