我在我的程序中收到这样的输入
lat1,long1;lat2,long2;lat3,long3
由列分隔的纬度经度对。
不,我想验证这个输入,这样我就不会收到错误的数据。
我创建了一个正则表达式:
((^(\-?\d+(\.\d+)?),(\-?\d+(\.\d+)?));?)
问题是它只验证一个对而不是由 ; 分隔的一串对 如我所愿。
如果您能帮我想出一个表达式来验证我的数据,我将不胜感激。
我在我的程序中收到这样的输入
lat1,long1;lat2,long2;lat3,long3
由列分隔的纬度经度对。
不,我想验证这个输入,这样我就不会收到错误的数据。
我创建了一个正则表达式:
((^(\-?\d+(\.\d+)?),(\-?\d+(\.\d+)?));?)
问题是它只验证一个对而不是由 ; 分隔的一串对 如我所愿。
如果您能帮我想出一个表达式来验证我的数据,我将不胜感激。
您的表达式仅检查字符串开头的一对,后跟一列。
你可以试试这个:
^\-?\d+(\.\d+)?,\-?\d+(\.\d+)?(;\-?\d+(\.\d+)?,\-?\d+(\.\d+)?)*$
那是您的正则表达式(没有一些括号 inutiles),后面是 0 次或更多次一列和一对。
这样的事情怎么样?
(-?[\d\.]+,-?[\d\.]+)+;?+
我在Rubular.com (permalink)上试过,测试字符串如下:
-10,10;10.5,-10.337
结果?
Match 1
1. -10,10
Match 2
1. 10.5,-10.337
.2
我会使用以下模式,它也可以接受像0.2
.
^-?(\d+(\.\d+)?|\.\d+),-?(\d+(\.\d+)?|\.\d+)(;-?(\d+(\.\d+)?|\.\d+),-?(\d+(\.\d+)?|\.\d+)){2}$
这是故障。
^ # beginning of string
-? # optional minus sign
( # either
\d+(\.\d+)? # an integer with an optional decimal part
| # or
\.\d+ # a decimal number
)
, # a comma
-? # optional minus sign
( # either
\d+(\.\d+)? # an integer and an optional decimal part
| # or
\.\d+ # a decimal number
)
(
; # a semicolon
-? # optional minus sign
( # either
\d+(\.\d+)? # an integer and an optional decimal part
| # or
\.\d+ # a decimal number
)
, # a comma
-? # optional minus sign
( # either
\d+(\.\d+)? # an integer and an optional decimal part
| # or
\.\d+ # a decimal number
)
){2} # with 2 repetitions (of the pattern)
$ # end of string