Preg匹配所有pcre c++

Preg match all in pcre c++

本文关键字:pcre c++ Preg      更新时间:2023-10-16

你好,这是我的字符串

last_name, first_name
bjorge, philip
kardashian, kim
mercury, freddie

php中,我使用preg_match_allpcre)来启动regex过程

preg_match_all("/(.*), (.*)/", $input_lines, $output_array);

现在我在c++上安装了pcre,我想知道c++中的pcre中到底有什么进程与我的php代码相等?在像phppreg_match_all一样工作的c++pcre中,究竟有什么功能?

在C++11中,标准库支持正则表达式。所以你不需要在没有任何具体原因的情况下使用pcre。

就像上面的例子一样,您可以使用标准正则表达式来实现同样的目的。例如:

#include <iostream>
#include <string>
#include <regex>
int main()
{
  std::vector<std::string> input = {
    "last_name, first_name",
    "bjorge, philip",
    "kardashian, kim",
    "mercury, freddie"
  };
  std::regex re("(.*), (.*)");
  std::smatch pieces;
  for (const std::string &s : input) {
    if (std::regex_match(s, pieces, re)) {
      std::cout << "Pieces: " << pieces.size() << std::endl;
      for (size_t i = 0; i < pieces.size(); ++i) {
        std::cout << pieces[i].str() << std::endl;
      }
    }
  }
  return 0;
}