我需要验证一个字符串,其中包含由破折号 (-)
或逗号 (,)
分隔的两个数字。有效值为:
23.98-34.76
或 23.98,34.76
23-34
或 23,34
5-6
或 5,6
我有以下正则表达式,这是对我收到的答案here in SO的略微修改。它涵盖了上述第一和第二种情况,但不包括仅涉及一位数字的第三种情况。
我正在使用的修改后的正则表达式字符串是:
(\d+\.?\d+?)([-,])(\d+\.?\d+?)
我的正则表达式出错了?
答案 0 :(得分:3)
正确的正则表达式应该是这样的:
(\d+(\.\d+)?)[-,](\d+(\.\d+)?)
即。如果有一个句号,那么它总是后跟一个或多个数字。
否则,在正则表达式中,它也会匹配123.,789.