我想匹配纬度和经度条目,用逗号分隔,并可能使用名称:
应该匹配
-43.48394, 87.394886
-43.44884, 88.344774, home
-43.87778, 88.987566,
不匹配
-43.89987, 89.345434 home
-43.44884, 88.344774, home, restaurant
这是我已经尝试过的,
^(-?d+(.d+)?),s*(-?d+(.d+)?),?(?<=,)[a-zA-Z ]*$
但无法匹配
-43.48394, 87.394886
我在这里错过了什么?
感谢-43.48394, 87.394886
字符串不匹配,因为您需要在经度值之后出现逗号。,?(?<=,)
部分只等于,
,因为此模式匹配一个可选的逗号,该逗号后跟一个必须以逗号开头的位置。
可以使用
^(-?d+(?:.d+)?),s*(-?d+(?:.d+)?)(?:,[a-zA-Z ]*)?$
参见regex演示。
:
^
-字符串 起始(-?d+(?:.d+)?)
-组1:可选的-
,一个或多个数字,然后是一个点和一个或多个数字的可选序列,
-逗号s*
-零或多个空白(-?d+(?:.d+)?)
-组2:可选的-
,一个或多个数字,然后是一个点和一个或多个数字的可选序列(?:,[a-zA-Z ]*)?
-一个可选的逗号序列,然后是零个或多个字母或空格$
-字符串结束