如何将perl模式替换的///'重写为C ++ 11正则表达式?

时间:2017-01-05 15:01:36

标签: regex c++11

互联网上是否有一个表将普通的perl正则表达式映射到等效的C ++ 11代码中?

基本上,我想要一个表,使用std :: string和C ++ 11将常见的Perl正则表达式(例如's ///'和s /// m'和'// i'映射到等效代码中正则表达式并在并排比较表中显示此信息。

示例:

{{1}}

如何在C ++ 11代码中编写每个Perl表达式?

2 个答案:

答案 0 :(得分:0)

我将从下面开始。 (我挑战人们使这个表格更加完整,并将其发布在互联网上的某个地方。除了这个问题之外的另一个挑战是对C#,Java和其他语言进行与Perl正则表达式完全相同的比较。)

{
  "myKey" : "someValue" 
}

答案 1 :(得分:0)

C ++和Perl的工作方式不同,但共享正则表达式语言。实际使用它们还有很多工作要做。例如,您的第一次替换看起来像这样:

#include <iostream>
#include <regex>
#include <string>

int main() {
  std::string line = "one two three four four SIX";
  std::regex two("two");
  line = std::regex_replace(line, two, "six");
  std::cout << line << "\n";
  return 0;
}

使用正则表达式进行简单的字符串替换,这在C ++中肯定是过度的,但你可以看到它是如何工作的。