Boost logo

Boost Users :

Subject: Re: [Boost-users] regular expression problems
From: Anthony Foglia (AFoglia_at_[hidden])
Date: 2009-04-23 14:04:09

John Maddock wrote:
>> I have a regex that validates a latitude format.
>> These are the restrictions:
>> Must have an N or S as first letter.
>> It can be all values from 0.0 to 90.0
>> My first shot at it confirmed format, but not data constraints:
>> "(N|S)\\d{2}\\.\\d{1,6} <file:///\\d%7b2%7d\d%7b1,6%7d> "
>> But any attempts to limit the constraints caused an exception in
>> regex. Is
>> there something wrong w/ how I formatted this:
>> "(N|S)(9[0]\\.0{1-6}|[0-8]\\d\\.\\d{1-6}
>> <file:///\\.0%7b1-6%7d|[0-8]\d\d%7b1-6%7d> )"
>> To me, it reads: 1st char must be N|S
>> If second char is 9, the next chars must be 0.0 through 0.000000
>> Else
>> If char is 0-8, then the next just has to be digits [0-9].[0-9]{1-6}
>> Can anyone tell me what I am doing wrong?
> There are no numeric constraints available in the regular expression
> language, and the {} operator are for constrained repeats with 1{1-6}
> not being a valid syntax.
> How about something like:
> (N|S)\\d(\\.\\d+|[1-8](\\.\\d+)?|9(\\.0+)?)?

I don't think that will match what he wants. It will match things like
"N99.0", which he prohibits.

It looks like the problem is "{1-6}" is invalid syntax. It should be
"{1,6}". In fact, that's what he wrote in his first shot, but not in
his second.

Anthony Foglia

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at