正则表达式标签允许4个单词最多3个逗号

时间:2014-02-28 12:50:59

标签: php regex

  

我需要允许最多4个标签(单词),它们应该是   用逗号分隔。例如:

*This, is, 4, tags * < ==应该没问题!

*now, 3, tags*< ==应该没问题!

*or, 2*< ==应该没问题!

*one*< ==应该没问题!

但是.. *this, is, more, than, 4, tags* < ==不应该有效!

4 个答案:

答案 0 :(得分:1)

这应该适合你:

^[^,]+(,[^,]+){0,3}$

答案 1 :(得分:1)

使用/^\w+(,\s*\w+){0,3}$/

preg_match('/^\w+(,\s*\w+){0,3}$/', 'This, is, 4, tags');             # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'now, 3, tags');                  # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'or, 2');                         # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'one');                           # 1
preg_match('/^\w+(,\s*\w+){0,3}$/', 'this, is, more, than, 4, tags'); # 0

观看演示:http://ideone.com/H70gJD

答案 2 :(得分:1)

不是真正的正则表达式的工作......

$tags = explode(",",$input_string);
if( count($tags) > 4) die("Too many tags!");

答案 3 :(得分:1)

这是一个解决方案:

^([^,]*,?[^,]*){3}$