欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php preg_replace preg_match 贪婪匹配 与非贪婪匹配 点号星号问号是非贪婪匹配 点号星号是贪婪匹配 有大用

// $controller now is "App\Http\Controllers\FooBarController"


//非贪婪匹配 
$result =preg_replace('/.*?\\\/', '', $controller);
// 结果是  FooBarController
//贪婪匹配 
$result
= preg_replace('/.*\\\/', '', $controller);
// 结果是  FooBarController

由此可见 preg_replace 的贪婪匹配,和非贪婪匹配,结果都是贪婪区配 这个不理解



//非贪婪匹配
preg_match('/.*?\\\/i', $controller,$matches);

结果是 array:1 [
 0 => "App\"
]




//贪婪匹配
preg_match('/.*\\\/i', $controller,$matches);
结果是 

array:1 [

  0 => "App\Http\Controllers\Admin\"

]


由此可见 preg_match 的贪婪匹配,和非贪婪匹配的结果是正常的


普通分类: