'/^[A-Z]++$/D' 两个连续加号的正则表达式含义是什么?
laravel request getMethod 疑问
Request.php
if (!preg_match('/^[A-Z]++$/D', $method)) {
throw new SuspiciousOperationException(sprintf('Invalid method override "%s".', $method));
}
这个正则的两个加号是什么意思?跪求大佬指点迷津。
'/^[A-Z]++$/D'
量词后面紧跟一个 ”+” 是”占有”性。它会吃掉尽可能多的字符, 并且不关注后面的其他模式,比如 .*abc 匹配 ”aabc”, 但是 .*+abc 不会匹配, 因为 .*+ 会吃掉整个字符串,从而导致后面剩余的模式得不到匹配。 可以使用占有符 (+) 修饰量词来达到提升速度的目的。
参考:www.php.net/manual/zh/regexp.refer...