Samuel Sieb, Wed, 4 May 2016 10:42:20 -0700:

> On 05/04/2016 10:09 AM, Jon LaBadie wrote:
>> The '*' means "zero or more digits".  Don't forget that zero.
>> The first match is where there are zero digits, i.e. at the
>> beginning of the line.  So sed replaces it with "//" (nothing).
>>
> However, usually regexps are greedy so they match as much as possible, 
> not the minimum.

And that's what it does. It matches the empty string at the beginning of
the line - and it would also (greedily) match digits at the beginning of
the line, but there are none. Try
echo '123This is a test 12335 and 669384 535xy4' | sed 's/[0-9]*//'

> And somehow it does work when you use /g so it is 
> matching more.

No, it's not matching *more*, it's matching *again* (that's exactly what
the g flag tells it to).

-- 
Regards
  mks
--
users mailing list
users@lists.fedoraproject.org
To unsubscribe or change subscription options:
http://lists.fedoraproject.org/admin/lists/users@lists.fedoraproject.org
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org

Reply via email to