Regex Help - Greedy vs. Non-Greedy

Drew Tomlinson drew at mykitchentable.net
Wed Sep 9 16:32:42 UTC 2009


Daniel Bye wrote:
> On Wed, Sep 09, 2009 at 09:15:25AM -0700, 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?
>>     
>
> Tested in vi, not vim:
>
>  /http:[^;]*/
>
> Dan
>   

Thanks for your reply.  I tried it in vim (or more specifically, gvim 
7.2) and your example matches all semi-colons.  However in vi, it does 
stop at the first semi-colon as you say.

Can anyone please explain the difference?

Thanks,

Drew

-- 
Be a Great Magician!
Visit The Alchemist's Warehouse

http://www.alchemistswarehouse.com



More information about the freebsd-questions mailing list