- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include`<iostream>`
#include `<string>`
#include `<regex>`
using namespace std;
int main ()
{
try{
std::regex re("(http|https)://(\\w+\\.)*(\\w*)/([\\w\\d]+/{0,1})+");
if (std::regex_match ("http://www.google.com", re))
{
std::cout << "valid URL \n";
}
else
{
std::cout << "invalid URL \n";
}
}
catch(std::regex_error& e)
{
if (e.code() == std::regex_constants::error_brack)
std::cerr << "Problem with brackets--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_collate)
std::cerr << "Problem error_collate--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_ctype)
std::cerr << "Problem error_ctype--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_escape)
std::cerr << "Problem error_escape--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_backref)
std::cerr << "Problem error_backref--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_paren)
std::cerr << "Problem error_paren--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_brace)
std::cerr << "Problem error_brace--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_badbrace)
std::cerr << "Problem error_badbrace--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_range)
std::cerr << "Problem error_range--"<<e.code()<<"\n";
if (e.code() == std::regex_constants::error_space)
std::cerr << "Problem error_space--"<<e.code()<<"\n";
}
std::cout << std::endl;
return 0;
}
上面的代码有什么问题?
我用 g++ -std=gnu++0x testURL.cpp
编译了它
它编译得很好,但是当我尝试使用 ./a.out
执行时
它抛出与正则表达式转义序列相关的异常。
我应该更正 o/p 有效 url
正则表达式中的转义序列有问题吗?
我们如何解决?
最佳答案
你能试试这个正则表达式吗:
std::regex re("(http|https)://(\\w+\.)*(\\w*)/([\\w\\d]+/?)+");
关于c++ - regex_match 抛出运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958719/
这个问题在这里已经有了答案: Is gcc 4.8 or earlier buggy about regular expressions? (3 个答案) 关闭 6 年前。 我正在尝试对其中包含方括
#include`` #include `` #include `` using namespace std; int main () { try{ std::regex re("(http|ht
我在 site 上测试了正则表达式 [BCGRYWbcgryw]{4}\[\d\]似乎可以在以下 BBCC[0].GGRY[0].WWWW[soln] 中找到匹配项。它与 BBCC[0] 和 GGRY
我正在尝试编写递归下降解析器,并尝试在用户输入的字符串中搜索正则表达式的匹配项。我正在尝试执行以下操作以尝试理解 C++11 提供的库,但我得到了意想不到的结果。 std::string expre
我正在尝试检查 yyyy-mm-dd 格式的日期字符串的格式。我像这样调用 regex_match 函数: if (regex_match(date, regex("/\d{4}-\d{2}-\d{2
我正在尝试使用 std::regex_match()作为 std::count_if() 中的谓词与 std::vector类成员函数中的元素。但是不知道如何正确地将第二个参数(正则表达式值)绕过到函
这是我的代码: #include #include #include using namespace std; int main () { string test = "COPY" ;
我正在使用 C++ 正则表达式。无法掌握以下编程输出。 #include #include #include #include using namespace std; int main(){
我在 XCode 上使用 C++。我想使用 regex_match 匹配非字母字符,但似乎有困难: #include #include using namespace std; int main(
这个问题在这里已经有了答案: Is gcc 4.8 or earlier buggy about regular expressions? (3 个答案) 关闭 5 年前。 我有这段代码片段,是我从
这是我的部分代码 bool CSettings::bParseLine ( const char* input ) { //_asm INT 3 std::string line (
我试图弄清楚我在这个验证规则上做错了什么,因为它说了这个错误。 验证规则: $this->form_validation->set_rules('username', 'Username', 'tri
在我的代码中,我想根据封闭的 <> 括号处理 stirngs。为此,我想遍历字符串并一个一个地替换括号并根据括号内的内容做一些事情。 string msg = "This is an Example<
目标是:这个 json: {"secretWord1":"private", "something": "\"secretWord2\":\"privateToo\""} 通过 regex_match
这是我的程序: #include "stdafx.h" #include #include #include #include using namespace std; int _tmain(
我必须编写一个 C++ 正则表达式,但我无法在 regex_match 上获得正确的结果,因为我是 C++ 的新手。测试字符串为:D10A7;让我们说 unsigned_char[] stringTo
我有一些我认为应该触发的 boost Regex 代码。我是 boost 的新手,但我对 Regex 有一点了解。这是我正在使用的代码。 re = boost::basic_regex(_T("-+\
我想匹配输入字段中给定的字符串。 A sample data could be "hello" -> returns true or "\"" -> returns true or "this is
我知道: 惰性量词匹配:尽可能少(最短匹配) 还知道构造函数: basic_regex( ..., flag_type f = std::regex_constants::EC
这个问题在这里已经有了答案: Simple std::regex_search() code won't compile with Apple clang++ -std=c++14 (3 个答案)
我是一名优秀的程序员,十分优秀!