我正在使用正则表达式检查字符串。
规则是:
字符串可以,
包含任何数字,连字符和逗号
连字符和逗号应该只在数字之间。它不应该在字符串的开头或结尾。
逗号是可选的。连字符是强制性的
例如,
有效:
10-20
10-20-3
10-20,3
InValid:
10
-10
,10
10-20,
10-20-
10,20
到目前为止我尝试过的代码:
[0-9,-]+
有人可以建议如何检查昏迷和连字符不应该在字符串的开头或结尾以及上述条件吗?
答案 0 :(得分:8)
试试这个表达式:
[0-9][0-9,-]*-[0-9,-]*[0-9]
这意味着字符串必须:
[0-9,-]
个字符[0-9,-]
个字符答案 1 :(得分:1)
你应该试试这个
[0-9][0-9,\-]*-[0-9,\-]*[0-9]
我认为连字符需要在字符类
中反映答案 2 :(得分:0)
表达式应在开头包含^
或\A
,在结尾包含$
或\z
,否则表达式也会匹配无效字符串,如:
,10
20-
-34
因此表达式应为:
^[0-9][0-9,-]*-[0-9,-]*[0-9]$