Дополнительно
Регулярное выражение для сопоставления координат широты/долготы?
Я'пытаюсь создать регулярное выражение для поиска координат широты/долготы. Для поиска чисел двойной точности я использовал (\-?\d+(\.\d+)?)
, и попытался объединить это в одно выражение:
^(\-?\d+(\.\d+)?),\w*(\-?\d+(\.\d+)?)$
Я ожидал, что это будет соответствовать двойке, запятой, возможно, пробелу и еще одной двойке, но, похоже, это не работает. В частности, он работает только если нет пробела, а не одного или нескольких. Что я сделал не так?
128
18
На этот раз будет строго соответствовать широты и долготы, которые попадают в диапазон:
Матчи
Не'Матч Т
Пробел - \s, а не \w
Посмотрим, сработает ли это
Я использую эти (десятичном формате, с 6 десятичных цифр):
Широта
[![Широте регулярного выражения визуализации][1]][1]
Долготы
[![Долготы регулярного выражения визуализации][2]][2]
[Здесь][3] - это суть, что испытания, представленные здесь, также, для облегчения доступа. Это'ы тест на Java для TestNG. Вам нужно Slf4j, Hamcrest и Ломбок, чтобы запустить его:
На самом деле Аликс Аксель, выше регулярное выражение неправильно в широту, долготу диапазоны точки зрения.
Измерения широты в диапазоне от -90° до +90° Измерения долготы в диапазоне от -180° до +180°
Так что регулярное выражение приведенный ниже проверяет более точно. Также, как я думал, никто не должен ограничивать десятичной точки в широту/долготу.
Или для цели c
Срыв регулярных выражений:
-?
# принимать отрицательные значения^
# Начало строки[0-9]{1,3}
# матч 1-3 цифры (я. е. 0-999)(?:
# Стараться соответствовать...\
. # десятичной точки[0-9]{1,10}
# следуют один до 10 цифр (я. е. 0-9999999999))?
# ...при необходимости$
# Конец строкиПопробуйте это:
Проверьте это в:
http://regexpal.com/
Вставьте слова в верхнем поле, а затем положить вещи, как это в нижнем поле:
Срыв регулярных выражений:
Теперь, что это не сделать, это ограничить себя в этом диапазоне:
Вместо этого, он просто ограничивает себя в этот ряд:
Но дело в основном просто, чтобы сломать каждую часть слова.
Вот более строгая версия:
-90
--+90
-180
--+180
Питон:
Широта:
результат = ре.матч (фильм"^[+-]?((90\.?0*$)|(([0-8]?[0-9])\.?[0-9]*$))&я;, '-90.00001')
Долгота:
результат = ре.матч (фильм"^[+-]?((180\.?0*$)|(((1[0-7][0-9])|([0-9]{0,2}))\.?[0-9]*$))&я;, '-0.0000')
Широте должен быть не в пример.
Я думаю, что вы используете \w (символ слова) там, где вы должны использовать \s (пробел). Словесные символы обычно состоят из [A-Za-z0-9_], так что это исключает пробел, который в дальнейшем не будет соответствовать необязательному знаку минус или цифре.
Это будет работать для такого формата: 31 ͦ 37.4' E
@макро-Феррари я нашел способ сократить его, и без взгляда опередила в свете всех недавних переговоров о регулярное выражение двигателей
Рубин
Долготы -179.99999999..180
Широте -89.99999999..90
Полный и простой способ в Objective C для проверки правильной шаблон для широты и долготы:
где searchedString - это вход, который пользователь должен ввести в соответствующее поле.
На PHP
Здесь является PHP's версии (входные значения:
$широты и долготы
):Вы можете попробовать это:
Попробуйте это:
Попробуйте это: