两边带感叹号的正则表达式 ('!\d!')

2022-08-31 01:00:54

我已经在PHP函数中看到了正则表达式。这到底是怎么回事?'!\d!'preg_match


答案 1

来自 PHP PCRE 文档

使用 PCRE 函数时,需要用分隔符将模式括起来。分隔符可以是任何非字母数字、非反斜杠、非空格字符。

在本例中,它只是用作分隔符。通常,如果要在正则表达式本身中使用普通分隔符而不必对其进行转义,则通常使用它。在这种情况下,这并不是必需的,因为正则表达式的其余部分很简单,但是对于检查路径是否包含三个以上的目录级别之类的事情来说,它派上用场。您可以使用以下任一方法:!\d

/\/.*\/.*\/.*\/ blah blah blah /

艺术

!/.*/.*/.*/ blah blah blah !

现在它们还没有经过彻底的测试,并且可能不完全像宣传的那样工作,但你应该得到一般的想法,即所需的最小转义。

另一个示例(来自上面链接的页面)是检查字符串是否以标记开头。以下两个之一:http://

/^http:\/\//
!^http://!

就足够了,但第二个更容易理解。


答案 2

!用作分隔符,与单个数字匹配。\d

它与/[0-9]/


推荐