PHP正则表达式分隔符,有什么意义?

2022-08-30 23:16:20

为什么 PHP 正则表达式有周围的分隔符?如果将任何模式修饰符作为参数传递给正在使用的任何函数,似乎会更清楚。


答案 1

使用分隔符的原因是将标志放在模式之后。可以说,标志可以作为一个单独的参数传递(Java可以这样做),但这就是Perl最初这样做的方式(在它之前是sed/awk/vi),所以这就是它现在的方式。

不要使用正斜杠:它们太常见了。就我个人而言,我几乎总是使用!字符。我几乎从未寻找过。


答案 2

没有技术原因为什么它必须这样。

如注释中所述,基础库不要求将标志作为正则表达式的一部分进行传递 - 实际上,扩展必须剥离这些标志并将其作为单独的参数传递。

看起来好像最初的实现者试图让它看起来像grep/sed/awk/perl/etc,这样来自这些工具的程序员就会更熟悉它。


推荐