| 
	
 | 
 Posted by  davranfor on 10/17/07 21:21 
On 17 oct, 21:10, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote: 
> On Wed, 17 Oct 2007 22:50:59 +0200, <davran...@gmail.com> wrote: 
> > On 17 oct, 20:20, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote: 
> >> On Wed, 17 Oct 2007 21:59:49 +0200, <davran...@gmail.com> wrote: 
> >> > Hello 
> 
> >> > I need a regular expression that validate a list of numbers separated 
> >> > by "-" , numbers can not be greater than 999 
> 
> >> > Valid examples 
> >> > 0 
> >> > 12-455-01 
> >> > 1-9 
> >> > 125-32-155-45-45 
> 
> >> > Invalid examples 
> >> > -1 
> >> > 45- 
> >> > 1-45665456-4 
> >> > 12-45- 
> >> > - 
> 
> >> Hmmz, showing a 'best try' would be appreciated. However, I normally 
> >> can't 
> >> resist a good regex, so here it goes: 
> 
> >> '/^([1-9][0-9]?)?[0-9](-([1-9][0-9]?)?[0-9])*$/' 
> 
> >> Untested BTW. I've made 78-034-89 invalid, as a number should not start 
> >> with zero, unless it's only 1 zero. 't Would be simpler if it was valid, 
> >> your choice. 
> 
> > works like a charm, can you explain the simple way without check zero 
> > at start? 
> 
> '/^                     # match start of string 
> [0-9]{1,3}              # match 1 to 3 digits 
> (                       # start subpattern 
>         -               # literal - 
>         [0-9]{1,3}      # match 1 to 3 digits 
> )*                      # match subpattern zero or more times 
> $                       # match has to run all the way up untill the end of the string 
> /x' 
> 
> When starting with regexes, and certainly for the more complex ones, don't 
> underestimate the power of /x: comments in the regex itself, indentation 
> to keep things clear, it does wonders. It also keeps you from 
> rediscovering how the hell your regex worked 6 months after you wrote it 
> when you have to track a bug..... 
> -- 
> Rik Wasmus 
 
Thanks !!! simple and beatifull
 
  
Navigation:
[Reply to this message] 
 |