c++ - 有什么方法可以从 C++ 中的文本中提取 URL

标签 c++ regex

<分区>

在 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;
  }
}

阅读更多信息 http://www.cplusplus.com/reference/regex/

关于c++ - 有什么方法可以从 C++ 中的文本中提取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649480/

相关文章:

regex - 对正则表达式的基本操作感到困惑

c++ - 以 FLOPS 估算 GPU 的效率(CUDA SAMPLES)

java - 使用带小数的 string.split() - 不起作用

c++ - boost::asio::io_service 是否保留处理程序的顺序?

c++ - 为什么不是所有的函数都是内联的?

javascript - 从字符串末尾到破折号获取数字

regex - AWK代码解析器,区分除法和正则表达式

c# - 用于在 HTML 中查找 WSDL 文件的正则表达式

c++ - 完美转发 C++ 重载和模板化仿函数及其参数

c++ - BinaryTree 不会分配新创建的节点