Mike Steiner wrote:
> I'm getting some odd errors. One problem seems to be that \1 in the
> replacement string doesn't always work. Are there any known "gotchas"
> between Python's regexps and Ruby's?
> 
> And what's the most robust way to convert "underlined" words to HTML 
> italics
> using a regexp? Something like: "This _word_ is in italics." -> "This
> <i>word</i> is in italics."

Could you give an example of where it isn't working in the first case?

As for the second, I don't know about 'most robust' but I might try 
something like this (with the assumption that words aren't broken over 
lines):

irb> str
=> "asdf asdf _asdfasd_ asdf _ash_ h"
irb> str.gsub(/_([^\s]+)_/, "<i>\\1</i>")
=> "asdf asdf <i>asdfasd</i> asdf <i>ash</i> h"

Or if I wanted to be able to have italicised sentences (_word word_) I 
might try this:

irb> str
=> "asdf asdf _asdf asd_ asdf _ash \nash_ h"
irb> str.gsub(/_(.+?)_/m, "<i>\\1</i>")
=> "asdf asdf <i>asdf asd</i> asdf <i>ash \nash</i> h"

But then I would worry about performance because of the lazy operator 
and would want to test it on some real data.

best,
Dan

-- 
Posted via http://www.ruby-forum.com/.