你们中的任何人都可以帮助我使用接受这些的正则表达式:
1112312.2312312
1.23123
1,231
1.2344
123.123
123123
......但不是这些:
.1123
,2313
123.231.32
123..12
答案 0 :(得分:9)
<强>更新强>
此解决方案将符合更新的要求:
^\d+(?:[\.\,]\d+)?$
这是一个基本表达式,只允许一个点或逗号,并要求表达式的其余部分为数字。
^\d*[\.\,]\d*$
即使没有数字,这也只会匹配.
或,
。
如果您想要在点或逗号的每一边至少需要一位数字,请使用:
^\d+[\.\,]\d+$
(我认为这是您想要的,基于您的样本数据)。
如果您只需要至少一位数,请使用此(使用预测):
^(?=.*\d)\d*[\.\,]\d*$
这也会使点/逗号成为可选:
^(?=.*\d)\d*[\.\,]?\d*$
答案 1 :(得分:1)
这应该可以解决问题:
var test = new Regex(@"^\d+([\.\,]?\d+)?$");
用法:
bool isValid = test.IsMatch("1.1"); //true