in reply to How to substitute all the words before a certain word in the middle of a line?

Better late than never: here's my take on the situation.
$test = "This is a nice weather. He is a nice guy. We have some nice f +ood in our dinner."; $test =~ s/(?:.*?)(\bnice\b[^.]*\.\s*)/A $1/g; print $test;
The (?: allows grouping without backreferencing, thus making the regex a little more efficient. The [^.] after the word "nice" forces it to match up to, but excluding the period. This is much more efficient than the dot star ".*" because of the way Perl's regex engine works. Unfortunately, I could not figure out a clean way of getting rid of the first dot star.

Cheers,
Ovid

  • Comment on RE: How to substitute all the words before a certain word in the middle of a line?
  • Download Code