Rob Biedenharn wrote:
> On Apr 8, 2008, at 2:53 PM, Peter Bailey wrote:
>> file = File.read("test1.txt")
>> And, I'm getting this:
>> Peter
> Dir.chdir("C:/users/pb4072/documents") do |d|
>    file = File.read("test1.txt")
>    output = file.gsub(%r{^(<row><entry><text><emph face="b">)(.*)(</
> emph>)}m) do |match|
>      "#{$1}#{$2.gsub(%r{\b\w+\b}){|w|w.capitalize}}#{$3}"
>    end
>    File.open("test1.txt", "w") { |f| f.write output }
> end
> 
> Note the use of three capture groups to get the unchanged initial and
> final parts as well as the middle part that is altered.  The %r{\b\w+
> \b} is a Regexp that matches words, \b is a word-boundary and \w is a
> word-character (short for [a-zA-Z0-9_]).  Your use of
> String#capitalize! returns nil if no change is made.
> 
> -Rob
> 
> Rob Biedenharn    http://agileconsultingllc.com
> Rob / AgileConsultingLLC.com

Thanks, Rob. This works beautifully, except that I need that last 
</emph> in my output. It's being stripped with your code. I don't see 
why, because it's just your $3, isn't it?
-- 
Posted via http://www.ruby-forum.com/.