我正在尝试使用c ++ std::regex
来验证URL。使用here中记录的John Gruber的Web URL匹配正则表达式的缩写形式(我只是缩短了它将接受的TLD列表),std::regex()
引发了代码0x0e异常(我认为这是语法错误)
std::regex myRegEx(R"((?i)\b((?:https?:(?:/{1,3}|[a-z0-9%])|[a-z0-9.\-]+[.](?:com|net|org|edu|gov|mil)\b/?(?!@))))")
请注意,我使用的是c ++ 11原始字符串,以避免需要转义反斜杠。
我猜想c ++ regex引擎期望的语法与John的表达式使用的语法不同,但是我还不了解如何适应它。
我该怎么做才能使此正则表达式与std::regex
一起使用?