-3

你好这是我的字符串

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

php我使用preg_match_all( pcre) 开始regex进程

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

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

4

1 回答 1

0

在 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;
}
于 2016-04-12T06:23:49.830 回答