难道是因为跟Perl学的?可是Perl是内嵌正则表达式的语言,用分隔符标明正则很自然。PHP既然是用preg系列函数处理,为什么还要用分隔符?
Python下也是用函数处理(re模块提供),不需要分隔符。
pattern = re.compile("foo")
Haskell 下的 Text.Regex.Posix 一样不需要分隔符。
"my left foot" =~ "foo" :: Bool
有意思的是,PHP 5.3 开始废弃的 ereg系列函数是不加分隔符的:
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);
那么 preg 系列函数设计成 pattern 需要加分隔符,有何用意?
加了分隔符的话可以加一些模式修饰符m,u,i,s之类的吧,不加分隔符怎么加?而且preg系列的话是沿袭PCRE系列的,所以遵从了PCRE的一些基本规则吧,POSIX的就是不要分隔符的嘛。另外preg系列和perl还有些许不同的,所以应该不是跟perl学的吧。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。