我想知道为什么必须有这么多正则表达方言.为什么它看起来像这么多语言,而不是重复使用一种经过验证的方言,似乎一心想写自己的语言.
我的意思是,我知道其中一些确实有非常不同的后端.但是不应该从程序员那里抽象出来吗?
我更多地指的是奇怪但小的差异,比如括号必须用一种语言转义,但是在另一种语言中是文字.或者元字符意味着有些不同的东西.
是否有任何特殊原因我们不能为正则表达式提供某种普遍方言?我认为这对于那些必须使用多种语言的程序员来说会更容易.
Wel*_*bog 10
因为正则表达式只有三个操作:
|*其他一切都是延伸或语法糖,因此没有标准化的来源.捕获组,反向引用,字符类,基数操作等等都是正则表达式原始定义的补充.
其中一些扩展使"正则表达式"不再具有规律性.由于这些附加功能,他们能够决定非常规语言,但无论如何我们仍称它们为正则表达式.
随着人们添加更多扩展,他们通常会尝试使用正则表达式的其他常见变体.这就是为什么几乎每种方言都X+用来表示"一个或多个X",这本身就是写作的捷径XX*.
但是当添加新功能时,没有标准化的基础,所以有人必须做出一些改进.如果不止一组设计师在同一时间提出类似的想法,他们会有不同的方言.