正则表达式标记输入自动完成

时间:2014-09-28 11:34:08

标签: regex

我在使用正则表达式验证产品标签时遇到问题。我想获得值1,2,3(最后没有“,”。例如:1,2,3或1,2,3,44,5)。以下是我的代码。

$pat = '/^[0-9]+[,].$/';
if(preg_match($pat, $str))
{
return TRUE;
} else {
return FALSE;
}

结果:

  • 1,2,3 - >返回False。 (需要返回TRUE)
  • 1,2,3, - >返回假。
  • 1,2, - > return false
  • 1 - > return false(需要返回TRUE)

所以只有1,2 - >返回true

(糟糕的英语请帮帮我)

2 个答案:

答案 0 :(得分:1)

使用以下正则表达式验证逗号分隔的数字字符串

^\d++(,\d++)*+$

这也允许一个数字。

DEMO

OR

^\d++(,\d++)++$

这不允许使用单个数字(不含逗号)。

DEMO

在每++之后添加*因为它会避免Catastrophic Backtracking

答案 1 :(得分:0)

^(?!.*,$)(?>\d+,?)+$

试试这个。看演示。

http://regex101.com/r/lS5tT3/83