@Croners

Как написать регулярное выражение, в котором может присутствовать знак минус (-)?

Есть текстовый файл, в котором встречаются координаты в таком формате: X="473.5903" Y="-1170.34" Z="30.19885"
Нужно получить цифры этих координат в виде групп.
Если использовать вот такое регулярное выражение: X="(\d+\.\d+)"\sY="(\d+\.\d+)"\sZ="(\d+\.\d+)" - то оно работает только в случае положительных чисел. Числа со знаком минус под него не подходят и, соответственно, такие строки не обрабатываются. Как указать, что перед цифрой может быть символ "минус"?
Сейчас я использую обходную технологию: X="(.+)"\sY="(.+)"\sZ="(.+)" - беру всё, что в скобках, но в этом случае там могут быть не только цифры, а мне этого не нужно.
Пробовал использовать такое выражение: X="([-|]\d+\.\d+)"\sY="(\d+\.\d+)"\sZ="(\d+\.\d+)" - в квадратных скобках или "минус" или ничего, но не работает...
  • Вопрос задан
  • 7908 просмотров
Решения вопроса 2
@IceJOKER
Web/Android developer
сил хватило на первые две строчки и вот мой ответ:
([0-9\.\-]) - один вариант
(-?\d\.) - еще один вариант
сам не силен в этом, надеюсь правильно)
Ответ написан
Комментировать
@Billy_Milligan
Вот вроде то что Вам нужно)
Не знаю на каком языке пишите, не забудьте поставить глобальный поиск /g
-?[0-9]*\.[0-9]*

или

-?\d*\.\d*
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Croners Автор вопроса
Спасибо всем, вот такой вариант отлично работает: X="(-?\d+\.\d+)"\sY="(-?\d+\.\d+)"\sZ="(-?\d+\.\d+)"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы