gpt4 book ai didi

c++ - 为什么 C++11 支持 6 种不同的正则表达式语法?

转载 作者:IT老高 更新时间:2023-10-28 22:58:59 26 4
gpt4 key购买 nike

C++11 似乎支持多达六种不同的正则表达式语法:

  • ECMA-262 (ECMAScript) 正则表达式(稍作修改?)
  • 基本 POSIX 正则表达式
  • 扩展的 POSIX 正则表达式
  • awk 正则表达式
  • grep 正则表达式
  • egrep 正则表达式

为什么决定包含这么多选项而不是解决单一语法?为什么是这 6 个?

最佳答案

标准化过程全是实用主义。在标准中包含一个 RE 语法是有好处的,只要它被正确指定,但删除它没有好处。

排除将使库实现者更容易应用“100% C++11 兼容”徽章,但谁真正在乎呢?无论如何,没有人应该提出这种说法,只有无知的 PHB 才会寻找它。库总是存在无法达到 100% 的错误,而好的库具有过多的功能。

请注意,所有包含的语法均由现有的国际标准指定。 C++ 委员会只需要很少的努力。只是 §28.13,有几页长。

如果他们遗漏了一个标准化的语法,那么不同的标准库实现者会以不同的名称添加它,从而导致不兼容。这对于仅由流行库定义的语法不太可能发生,其中库实现者将负责 C++ 接口(interface),而不是标准库供应商。

关于c++ - 为什么 C++11 支持 6 种不同的正则表达式语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com