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
>
>

Reply via email to