in reply to Re: simpler regex
in thread simpler regex

I think that's going to start doing the wrong thing if Dr van Houten starts putting letters after his name; the first set are ok but as you start adding more you get unwanted dots.

$ perl -le '$_ = q{Dr P J van Houten MD}; > s[(?<=[A-Z])(?=\s)][.]g; > print;' Dr P. J. van Houten MD $ perl -le '$_ = q{Dr P J van Houten MD FRCS}; > s[(?<=[A-Z])(?=\s)][.]g; > print;' Dr P. J. van Houten MD. FRCS $

A possible solution is to use alternation of two look-behinds.

$ perl -le '$_ = q{Dr P J van Houten MD FRCS}; > s{(?:(?<=\A[A-Z])|(?<=\s[A-Z]))(?=\s)}{.}g; > print;' Dr P. J. van Houten MD FRCS $

Cheers,

JohnGG