<分区>
在 PHP 中,我可以编写正则表达式以从文本中提取 URL。 想知道 C++ 中可用的任何此类类或方法吗?
我正在处理可能包含 URL 的流数据。我想从中提取具有计数值的每个 URL。
我可以使用 vector 或其他数据结构进行后续处理,但问题是标题。
<分区>
在 PHP 中,我可以编写正则表达式以从文本中提取 URL。 想知道 C++ 中可用的任何此类类或方法吗?
我正在处理可能包含 URL 的流数据。我想从中提取具有计数值的每个 URL。
我可以使用 vector 或其他数据结构进行后续处理,但问题是标题。
最佳答案
引入 C++11 <regex>
作为标准库的一部分。
让我们来看看如何使用它。
首先我们需要导入标题。
#include <regex>
现在让我们声明我们的 URL 正则表达式。现在我们将使用一些非常简单的东西。我将留给您用更完整的正则表达式替换它。注意我们如何使用 \\
而不仅仅是 \
逃避事情。 \
本身在 C++ 中是一个特殊字符,所以我们需要对它进行转义。
std::regex url(".*\\..*");
让我们创建一个字符串来测试它。
std::string url_test = "example.com";
现在让我们检查一下 url_test
火柴url
并相应地打印出一条消息。
if(regex_match(url_test, url)) {
std::cout << "It's a url!" << std::endl;
} else {
std::cout << "Oh snap! It's not a url!" << std::endl;
}
我们的完整程序:
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::regex url(".*\\..*");
std::string url_test = "example.com";
if(regex_match(url_test, url)) {
std::cout << "It's a url!" << std::endl;
} else {
std::cout << "Oh snap! It's not a url!" << std::endl;
}
}
关于c++ - 有什么方法可以从 C++ 中的文本中提取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649480/