我已经'!\d!'
在 PHPpreg_match
函数中看到了正则表达式。这是什么鬼?
问问题
5184 次
2 回答
17
来自PHP PCRE 文档:
使用 PCRE 函数时,需要用分隔符将模式括起来。定界符可以是任何非字母数字、非反斜杠、非空白字符。
在这种情况下,它只是!
用作分隔符。如果您想在正则表达式本身中使用普通分隔符而不必对其进行转义,通常会使用它。在这种情况下并不是真正必要的,因为正则表达式的其余部分是简单的\d
,但它在检查路径是否包含三个以上目录级别等事情时会派上用场。您可以使用以下任何一种:
/\/.*\/.*\/.*\/ blah blah blah /
或者:
!/.*/.*/.*/ blah blah blah !
现在它们还没有经过彻底的测试,并且可能无法完全像宣传的那样工作,但是您应该了解所需的最小转义的一般概念。
另一个示例(来自上面链接的页面)是检查字符串是否以http://
标记开头。这两个之一:
/^http:\/\//
!^http://!
就足够了,但第二个更容易理解。
于 2012-09-25T09:08:38.740 回答
5
!
用作分隔符,\d
匹配单个数字。
它与/[0-9]/
于 2012-09-25T09:09:17.167 回答