Regex Help - Greedy vs. Non-Greedy
Mel Flynn
mel.flynn+fbsd.questions at mailing.thruhere.net
Wed Sep 9 16:27:00 UTC 2009
On Wednesday 09 September 2009 18:15:25 Drew Tomlinson wrote:
> I'm trying to do a search and replace in vim. I have lines like this:
> http://site1/dir/;
> http://site2/dir/;LastName, FirstName;Phone;
> http://site3/dir/;LastName, FirstName;
> http://site4/dir/;
>
> I'm want to match "http:*" and stop matching at the first ";". My basic
> regex is:
>
> /http:.\+;/
>
> But it's matching *all* the semi-colons. Thus I've Googled and tried
> various incatations to try and make my regex "non-greedy" but I can't
> seem to come up with the correct combination.
>
> How can I write a regex that stops matching at the first semi-colon?
AFAIK, there's no greediness modifier in vim regex. However, you can use
character classes to solve your problem:
%s/http:[^;]\+/foo/g
--
Mel
More information about the freebsd-questions
mailing list