preg匹配pcre c ++中的所有内容

时间:2016-04-12 05:40:07

标签: c++ pcre pcregrep

你好,这是我的字符串

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代码相同? c ++ pcre中的函数究竟与php preg_match_all一样有效吗?

1 个答案:

答案 0 :(得分:0)

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

如上例所示,您可以使用标准正则表达式实现相同的目标。 E.g:

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