我目前有一个文本区域作为输入字段,并希望确保它有超过3个单独的行。
当我使用Yii框架时,我使用validate()方法验证模型。
通过Yii完成验证,我打算使用匹配功能来检查输入有效的正则表达式。
目前我有:
array('ingredients', 'match', 'pattern'=> '/(\n|\r\n|\r){3,}/'),
哪个不起作用,但是如果我将3更改为1则它可以正常工作。
如何确保使用正则表达式至少有3行?
答案 0 :(得分:1)
你的正则表达式
/(\n|\r\n|\r){3,}/
意味着有三个连续的换行符。允许介于两者之间的其他字符,例如
/((\n|\r\n|\r).*){3,}/
答案 1 :(得分:1)
三行是两次休息,而不是三次。所以你要找的数字是2。
然后正则表达式与第一个匹配。因此,您应该使用\r\n
作为第一个子模式,以防止将\n\r
作为两个换行符的序列进行捕获。
然后你会寻找重复的换行符。但是你想要的不仅仅是空行。
这种模式可能符合您的需求:
/^(?:.*(?:\r\n|\n|\r)){2,}/
它将允许三个或更多(空和非空)行。
答案 2 :(得分:0)
您还需要匹配这些行的内容:
array('ingredients', 'match', 'pattern'=> '/(.*(\n|\r\n|\r)){3,}/'),