我是正则表达式的新手。我需要验证一个字符串,但是当我使用我当前的尝试时,它总是返回 false。
规则:
- 像“polygon(())”这样的文本匹配器
- 像 XY 这样的数字匹配器,其中 x 和 y 可以是任何双精度数
- 尽可能多的 XY 对,以逗号分隔。
例如:
PolyGoN((
-74.0075783459999 40.710775696,
-74.007375926 40.710655064,
-74.0074640719999 40.7108592490001,
-74.0075783459999 40.710775696))
这是我使用的代码:
String inputString = "POLYGON((-74.0075783459999 40.710775696, -74.007375926 40.710655064, -74.0072836009999 40.710720973, -74.0075783459999 40.710775696))";
String regexp = "polygon[\\((][(\\-?\\d+(\\.\\d+)?)\\s*(\\-?\\d+(\\.\\d+)?)]*[\\))]";
Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputString);
boolean result = matcher.matches();