Php Laravel 5.6正则表达式验证始终显示错误
我试图根据正则表达式验证输入的字符串,这在像和这样的网站上运行良好,但在laravel中总是显示错误 正则表达式应与以下字符串匹配: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
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
见
详细信息
-字符串的开头^
-afl-
文本fl
-捕获组(添加(IV | I{1,3}br II)
在?:
使其不捕获)匹配之后(
,一到三个IV
s或I
br II
-连字符-
-0+位\d*
-可选的非单词字符\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