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.