gpt4 book ai didi

c++ - 使用 std::regex 调用 abort() 来验证 URL

转载 作者:搜寻专家 更新时间:2023-10-31 01:09:40 24 4
gpt4 key购买 nike

#include  <iostream>      
#include <string>
#include <regex>
using namespace std;

int main ()
{

if (std::regex_match ("http://www.google.com", std::regex("(http|https):\/\/(\w+\.)*(\w*)\/([\w\d]+\/{0,1})+")))
std::cout << "valid URL \n";
std::cout << std::endl;
return 0;

}

它编译时有警告,但是当我执行时它给出了

terminate called after throwing an instance of 'std::regex_error'

what(): regex_error

中止(核心转储)

我应该做什么?

最佳答案

您忽略的警告可能会告诉您问题所在。

通过查看模式,您没有正确转义模式字符串。

将模式字符串适当转义为使用'\'转义反斜杠即可解决问题。否则,编译器试图将未转义的反斜杠后面的字符解释为字符串控制字符。

std::regex("(http|https)://(\\w+.)(\\w)/([\\w\\d]+/{0,1})+")

关于c++ - 使用 std::regex 调用 abort() 来验证 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16769746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com