可能重复:
正则表达式中的 ^ 和 $ 是什么意思?
我一点也不擅长正则表达式,我知道它们非常重要,但一直没有时间研究它们。无论如何,我只是想确保在这些字符串中:
MAX_AGE_60
MAX_AGE_80
...
MAX_AGE_X
其中更一般X
的是 a integer
,至少找到一个匹配项并获取该数字X
。因此,按照 PHP 文档中的示例,我写了这个:
// Starts and ends with the literal 'MAX_AGE_' followed by a group that is a
// number with at least one digit. Case insensitive
$pattern = '/^MAX_AGE_(?P<max>\d+)$/i';
$test = 'MAX_AGE_80';
$matches = array();
preg_match($pattern, $test, $matches);
var_dump($matches);
结果是错误的(惊喜......):
array (size=0)
empty
删除开始/结束分隔符(^
和$
)我得到正确的结果:
array (size=3)
0 => string 'MAX_AGE_80' (length=10)
'max' => string '80' (length=2)
1 => string '80' (length=2)
那么为什么我不能强制字符串必须以该模式开始和结束呢?以及应该如何解释结果数组?我的意思是索引0
和?1
max