匹配以分号分隔的浮点数

时间:2013-11-29 13:47:05

标签: regex qregexp

我使用的是regexp验证器,我想限制使用除模式之外的任何东西:

5414.1;123;412.1;41241; ...

我尝试使用[0-9;\.]*,但我无法仅匹配文字后面和;之前包含一(1)个点的模式。

我使用http://regexpal.com/进行了测试。

4 个答案:

答案 0 :(得分:4)

如果数据必须以;

结尾
 (-?\d+(\.\d+)?\;)+

否则:

 (-?\d+(\.\d+)?)(;-?\d+(\.\d+)?)*;?

这些不允许空输入,但您可以通过将第一个示例中的+替换为*并将第二个替换为(...)?来实现此行为。

答案 1 :(得分:4)

^(\d+(\.\d+)?;)+$

^$将阻止接受字符串的一部分

答案 2 :(得分:2)

您也可以使用此模式

^(?:-?\d+[.;]?)+$

答案 3 :(得分:1)

这也不完美,但已经在附近......例如它允许-01.5。

((-|)[0-9]+(\.[0-9]*[1-9]|)\;)*(-|)[0-9]+(\.[0-9]*[1-9]|)

或者你可以将所有(x |)类似的表达式挑选到x? :(来自@OGHaza)