当我使用它检查正则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
答案 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