you are right, but the original post read

> grep 'a+bb?'

so you get at least one 'a' and one or two 'b'.

2009/6/3 Wu JIANG <[email protected]>:
> actually, a+ means at least one 'a', b? means zero or one 'b'.
>
> On Wed, Jun 3, 2009 at 10:56 AM, hugo rivera <[email protected]> wrote:
>>
>> Hello,
>> I am experimenting with some regexp implementations (namely the one
>> from "the practice of programming") and I am a little disoriented by
>> the use of the '?' operator in plan 9's grep:
>> say I have the following input
>>
>> aaaabbb
>> ab
>> aaaab
>> bb
>> b
>> aaabb
>> aaaa
>>
>> which I feed into grep with
>>
>> grep 'a+bb?'
>>
>> which should match at least one 'a' followed by one or two 'b'. So,
>> grep's output is
>>
>> aaaabbb
>> ab
>> aaaab
>> aaabb
>>
>> which really surprised me at first, since I wasn't expecting the first
>> line. After some thought, I realized that the 'aaaab' and the 'aaaabb'
>> patterns, contained in the first line of input, match the regexp, so
>> grep prints the line.
>> But then, how exactly the '?' operator is useful for grep? I was
>> thinking that it was good to filter lines that contain more characters
>> that desired, but it is not.
>> Saludos
>> --
>> Hugo
>>
>
>



-- 
Hugo

Reply via email to