你好,这是我的字符串
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代码相同? c ++ pcre中的函数究竟与php preg_match_all
一样有效吗?
答案 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;
}