I’m trying to write a parser for URIs. I tried the
grammar straight from RFC 2396
boost::regex parser("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?",
boost::regex::perl|boost::regex::icase);
This does not work since it I get an exception due
to invalid regular expression.
I found another regular expression, which does not
throw an exception but does not give me the parts of the URI using
boost::match_result
boost::regex
parser("(([a-zA-Z][0-9a-zA-Z+\\-\\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?/{0,1}([0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?(#[0-9a-zA-Z;/?:@&=+$\\.\\-_!~*'()%]+)?",
boost::regex::perl|boost::regex::icase);
What am I doing
wrong here?
Reena