正则表达式特性与风格概述
正则表达式的发展与新特性
正则表达式不断发展,增添了许多新特性,如非捕获括号、惰性量词、前瞻断言和 /x 修饰符等。这些“跳出常规”的改进表明,正则表达式本身可以成为一种强大的编程语言,并且仍有进一步发展的潜力。
新增的非捕获括号和前瞻断言结构需要一种表达方式。由于原有的分组对(如 (...)
、 [...]
、 <...>
或 {...}
)都无法用于这些新特性,Larry 想出了如今使用的各种 (?)
表示法。他选择这个不太美观的序列,是因为它在 Perl 正则表达式中以前是非法组合,因此可以自由赋予其含义。Larry 有远见地认识到未来可能会有更多功能,所以通过限制 (?)
序列后面允许的内容,为未来的增强预留了空间。
后续版本的 Perl 变得更加健壮,减少了 bug,进行了更多内部优化,并添加了新特性。多年来新增的正则表达式特性包括有限的后视断言、“原子”分组和 Unicode 支持。条件构造的加入将正则表达式提升到了一个新的水平,允许在正则表达式中进行 if - then - else 决策。甚至现在还有构造允许在正则表达式中混合 Perl 代码。
部分风格的整合
Perl 5 的发展与万维网革命完美契合。Perl 专为文本处理而设计,而网页构建正是文本处理,因此 Perl 迅速成为 Web 开发的首选语言。随着 Perl 的广泛流行,其强大的正则表达式风格也随之流行起来。
其他语言的开发者