|
Boost Users : |
From: Jean-Sebastien Vachon (js.vachon_at_[hidden])
Date: 2006-04-10 12:09:52
Hi All,
I'm trying to use the regex library in order to validate a generic
URI according to the regular expression specified in RFC 3986 - Uniform
Resource Identifier (URI): Generic Syntax.
Here is the expression:
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
As far as I know this is a POSIX compliant regex. I'm building my
regex with the following flags:
boost::regex::basic | boost::regex::icase
Here is the complete code:
bool RegExPOSIXValidator::IsValid(const std::string &oName) const
{
/* -------------------------------------------------------------------- */
/* Build the Regular Expression */
/* -------------------------------------------------------------------- */
boost::regex re(moRegex, boost::regex::basic | boost::regex::icase);
return boost::regex_match(oName, re);
}
The function is returning false for the following URI:
http://dimitrov@www.google.ca:88/index1.html?name=dimitrov#title
Which seem valid to me. Unless there is something I don't see.
I try doubling the \ in front of the ? at the end of the expression
as a solution but it didn't help.
Any idea?
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net