我正在使用正则表达式检查一个字符串。
规则如下:
该字符串可以包含任何数字、连字符和逗号。
连字符和逗号应该仅出现在数字之间。不应在字符串的开头或结尾。
逗号是可选的。连字符是必须的。
例如,
有效:
10-20
10-20-3
10-20,3
无效的:
10
-10
,10
10-20,
10-20-
10,20
到目前为止我尝试的代码:
[0-9,-]+
可以有人建议如何检查逗号和破折号是否在字符串的开头或结尾,以及以上条件?
尝试使用这个表达式:
[0-9][0-9,-]*-[0-9,-]*[0-9]
这意味着该字符串必须:
[0-9,-]
字符[0-9,-]
字符你应该试一下这个
[0-9][0-9,\-]*-[0-9,\-]*[0-9]
我认为字符类中的连字符需要加上反斜杠
表达式应该以^
或\A
开头,以$
或\z
结尾,否则表达式也会匹配无效的字符串,例如:
,10
20-
-34
所以表达式应该是:
^[0-9][0-9,-]*-[0-9,-]*[0-9]$