两边带感叹号的正则表达式 ('!\d!')
我已经在PHP函数中看到了正则表达式。这到底是怎么回事?'!\d!'
preg_match
来自 PHP PCRE 文档:
使用 PCRE 函数时,需要用分隔符将模式括起来。分隔符可以是任何非字母数字、非反斜杠、非空格字符。
在本例中,它只是用作分隔符。通常,如果要在正则表达式本身中使用普通分隔符而不必对其进行转义,则通常使用它。在这种情况下,这并不是必需的,因为正则表达式的其余部分很简单,但是对于检查路径是否包含三个以上的目录级别之类的事情来说,它派上用场。您可以使用以下任一方法:!
\d
/\/.*\/.*\/.*\/ blah blah blah /
艺术
!/.*/.*/.*/ blah blah blah !
现在它们还没有经过彻底的测试,并且可能不完全像宣传的那样工作,但你应该得到一般的想法,即所需的最小转义。
另一个示例(来自上面链接的页面)是检查字符串是否以标记开头。以下两个之一:http://
/^http:\/\//
!^http://!
就足够了,但第二个更容易理解。
!
用作分隔符,与单个数字匹配。\d
它与/[0-9]/