
jjkk73 at gmail
Nov 6, 2009, 11:12 AM
Post #3 of 4
(197 views)
Permalink
|
|
Re: Defining re pattern for matching list of numbers
[In reply to]
|
|
Thanks for your reply. But I need to use a regex; my program deals with a large number of patterns, and I want to treat them in a uniform way (through regex). On 11/6/09, Chris Rebert <clp2 [at] rebertia> wrote: > > On Fri, Nov 6, 2009 at 8:04 AM, jorma kala <jjkk73 [at] gmail> wrote: > > Hi, > > I'm trying to write a re pattern to match a list of one or more numbers, > > each number is in the range of 1-15 value and the numbers are separated > by > > spaces (but there are no spaces at the beginning and end of the string). > For > > instance: > > > > "3" > > "1 14 8" > > > > but not: > > > > "22" > > " 5 11" > > > > I've come up with something like this > > > > re.compile("^((([1-9])|(1[0-8]))( +(?=[1-9]))*)+$") > > > > but I can't believe this has to be so complicated. > > > Your format seems so simple I have to ask why you're using regexes in > the first place. > > try: > nums = [int(num) for num in line.split(" ")] > except ValueError: > print "Invalid input" > > for num in nums: > if num < 1 or num > 15: > raise ValueError, "Number present which is outside of valid range" > > Cheers, > Chris > > -- > http://blog.rebertia.com >
|