[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Question relating regexp



On Fri, 2003-01-17 at 08:03, Robert Land wrote:
> This is a example one can find on one of the links
> discribed in the deb HOWTO package:
> 
> =Section Multipliers(text just pasted):
> 
> 
> "
> An example from the phone list:
> ....
> 1248   Kate 634
> ....
> 1548  Kerry 534
> ....
> 
> To match a line that starts with a 1, 
> has some digits, at least one space 
> and a name that starts with a K we can write:
> 
> grep '^1[0-9]\{1,\} \{1,\}K' phonelist.txt
> or use * and repeat [0-9] and space:
> grep '^1[0-9][0-9]*  *K' phonelist.txt
> "
> 
> 
> =Why, in the first example, has the author
> prefaced the char 'K' with the one or more
> times multiplier? He only wants to find a 
> name beginning with 'K'(!)
> 
> Then, in the snd grep command he doubled
> '[0-9]', wouldn't only '^1[0-9]*....'be 
> sufficent? Again, 'K' is prefaced with the
> asterisk which doesn't seem necessary to me.

That \{1,\} in the first example applies to the space.
* means to match 0 or more of the preceding character.  Using
[0-9][0-9]* means to match 0-9 1 or more times.  As a side note the '+'
character is supposed to do that (match 1 or more occurences) but I've
never been able to get a match using it.



Reply to: