我正在使用正则表达式检查字符串。
规则是:
字符串可以,
包含任何数字、连字符和逗号
连字符和逗号只能位于数字之间。它不应该在字符串的开头或结尾。
逗号是可选的。连字符是强制性的
例如,
有效:
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,-]
个字符
关于java - 正则表达式匹配连字符和逗号,并且仅在两者之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11919374/