laravel中的str :: is函数如何传递正则表达式

时间:2019-04-17 08:38:41

标签: php laravel

当我使用它检查正则admin/customer/person/[0-9]+中的“ admin / customer / person / 1”字符串时,程序会告诉我正则表达式是正确的。

但是当我使用Str::is("admin/customer/person/[0-9]+", "admin/customer/person/1")这个函数时,结果是错误的。

同一件事具有以下内容

Str::is("admin/customer/person/([0-9]+)/edit", "admin/customer/person/1/edit");//result is false
Str::is("admin/customer/person/[0-9]+", "admin/customer/person/1");//false
Str::is("admin/customer/person/([0-9]+)", "admin/customer/person/1");//false
Str::is("admin/customer/person/\[0-9]+\\", "admin/customer/person/1");//false

2 个答案:

答案 0 :(得分:0)

我认为您不能使用正则表达式字符串来调用Str::is,如果您看一下at the source code for the function,它会在应用preg_quote之前在字符串上应用preg_match因此您的正则表达式将被故意转义。我认为这不是针对您的用例,您应该直接使用regex和preg_match。

答案 1 :(得分:0)

is方法将不匹配传统的正则表达式:

Str::is('[0-9]', '1');
// false