我使用的是regexp验证器,我想限制使用除模式之外的任何东西:
5414.1;123;412.1;41241;
...
我尝试使用[0-9;\.]*
,但我无法仅匹配文字后面和;
之前包含一(1)个点的模式。
我使用http://regexpal.com/
进行了测试。
答案 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)