Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.6正则表达式验证始终显示错误_Php_Regex_Laravel - Fatal编程技术网

Php Laravel 5.6正则表达式验证始终显示错误

Php Laravel 5.6正则表达式验证始终显示错误,php,regex,laravel,Php,Regex,Laravel,我试图根据正则表达式验证输入的字符串,这在像和这样的网站上运行良好,但在laravel中总是显示错误 正则表达式应与以下字符串匹配: FL-IV-1234 FL-III-1234 FL-II-56789 FL-I-1234334 FL-BR-II-53440 fl-iv-8484 fl-iii-84894 fl-ii-94 fl-i-334 表达方式: /(fl)-(IV-|I{1,3}-(\d*\W)|((fl)-(br)-II-\d*\W)/I 代码: 也尝试了无变量: $request

我试图根据正则表达式验证输入的字符串,这在像和这样的网站上运行良好,但在laravel中总是显示错误

正则表达式应与以下字符串匹配:

FL-IV-1234
FL-III-1234
FL-II-56789
FL-I-1234334
FL-BR-II-53440
fl-iv-8484
fl-iii-84894
fl-ii-94 
fl-i-334
表达方式:

/(fl)-(IV-|I{1,3}-(\d*\W)|((fl)-(br)-II-\d*\W)/I

代码:

也尝试了无变量:

$request->validate([
        'lic_no' => array('required', 'regex:/(fl)-(IV-|I{1,3}-)(\d*\W)|((fl)-(br)-II-\d*\W)/'),
    ]);
错误消息:

lic no格式无效。


请推荐,谢谢

您的正则表达式与预期匹配列表中的最后一项不匹配。您可以将第二个备选方案与第一个备选方案相结合,并将最后一个备选方案设置为可选:

/^fl-(IV|I{1,3}|br-II)-\d*\W?$/i

详细信息

  • ^
    -字符串的开头
  • fl-
    -a
    fl
    文本
  • (IV | I{1,3}br II)
    -捕获组(添加
    ?:
    之后(
    使其不捕获)匹配
    IV
    ,一到三个
    I
    s或
    br II
  • -
    -连字符
  • \d*
    -0+位
  • \W?
    -可选的非单词字符
  • $
    -字符串结束

顺便说一句,您似乎可以使用
/^fl-(IV | I{1,3}| br II)-\d*\W?$/i
。第二个选项与第一个选项几乎相同,最后一个
\W
阻止最后一项匹配。请参阅。@WiktorStribiżew感谢改进的表达式,但仍然有相同的错误消息
lic no格式无效
@WiktorStribiżew
/^fl-(IV{i{1,3}br II)-\d*\W?$/i
这一个有效,您能添加答案让我接受吗?谢谢!
/^fl-(IV|I{1,3}|br-II)-\d*\W?$/i