gpt4 book ai didi

regex - 为什么有这么多不同的正则表达式方言?

转载 作者:行者123 更新时间:2023-12-03 20:43:58 25 4
gpt4 key购买 nike

我想知道为什么必须有这么多正则表达式方言。为什么似乎有这么多语言,而不是重复使用一种久经考验的真实方言,似乎一心要编写自己的语言。

Like these.

我的意思是,我知道其中一些确实有非常不同的后端。但这不应该从程序员那里抽象出来吗?

我更多地指的是奇怪但微小的差异,例如括号必须在一种语言中转义,而在另一种语言中是文字。或者元字符的含义有些不同。

有什么特别的原因我们不能有某种通用的正则表达式方言吗?我认为对于必须使用多种语言工作的程序员来说,这会让事情变得更容易。

最佳答案

因为正则表达式只有三个操作:

  • 串联
  • 工会|
  • Kleene 闭合 *

  • 其他一切都是扩展或语法糖,因此没有标准化的来源。捕获组、反向引用、字符类、基数操作等都是对正则表达式原始定义的补充。

    其中一些扩展使“正则表达式”根本不再是正则的。由于这些附加功能,它们能够决定非正则语言,但无论如何我们仍然称它们为正则表达式。

    随着人们添加更多扩展,他们通常会尝试使用正则表达式的其他常见变体。这就是为什么几乎所有方言都使用 X+表示“一个或多个X”,这本身只是写作的捷径 XX* .

    但是当添加新功能时,就没有标准化的基础,所以必须有人做出一些事情。如果大约同时有不止一组设计师提出类似的想法,他们就会有不同的方言。

    关于regex - 为什么有这么多不同的正则表达式方言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298007/

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