指定开始结束时正则表达式不匹配
Posted
技术标签:
【中文标题】指定开始结束时正则表达式不匹配【英文标题】:Regex not matching when start end specified 【发布时间】:2016-02-06 06:06:22 【问题描述】:我在 php 中有以下正则表达式
/^(\d4-(\d4)?)$/
我只想匹配这样的字符串
1998-
1998-2015
我在 laravel 验证中使用它,如下所示:
'release_year' => 'required|regex:/^(\d4-(\d4)?)$/'
没有其他内容应该匹配,并且 number 应该是 4 位数字。但它似乎不起作用。
【问题讨论】:
它正在工作。在演示中添加多行标志。您必须检查代码中的正则表达式,而不仅仅是在正则表达式演示站点上。 试试$rules = array('release_year' => array('required|"match:/^([0-9]4-([0-9]4)?)$/"'));
。
Method [validate"match] does not exist.
还是同样的错误:Method [validate"match] does not exist.
这适用于以前的人:$rules = array( 'release_year' => array( 'required', 'Regex:/^([0-9]4-([0-9]4)?)$/' ) );
,请检查。
【参考方案1】:
在 Laravel 文档中:
regex:pattern
验证中的字段必须与给定的正则表达式匹配。
注意:使用正则表达式模式时,可能需要指定 数组中的规则而不是使用管道分隔符,特别是如果 正则表达式包含管道字符。
试试这个:
'release_year' => array('required', 'regex:/^(\d4-(\d4)?)$/')
【讨论】:
以上是关于指定开始结束时正则表达式不匹配的主要内容,如果未能解决你的问题,请参考以下文章