Проблема №1. Соответствие числам

  Юрий  | 

  Обновл. 20 Ноя 2019  | 

 199

 ǀ   2 

На первый взгляд, написание регулярных выражений для соответствия числам не должно стать неподъемной задачей, не так ли?

У нас есть метасимвол \d для соответствия любой цифре, и всё, что нам нужно сделать — это ещё прикрутить соответствие десятичной точке, верно? С простыми числами это всё легко, но при работе с научными или финансовыми значениями вам придётся иметь дело с положительными и отрицательными числами, значащими цифрами, показателями степени и даже различными представлениями (например, запятая, используемая для разделения тысяч и миллионов).

Ниже приведены несколько различных форматов чисел, с которыми вы можете столкнуться. Если у вас возникли проблемы с пропуском последнего числа, то обратите внимание на окончание этого числа по сравнению с окончаниями остальных значений.

Проблема №1: Соответствие числам
Задание Текст
Соответствовать 3.14529 To be completed
Соответствовать -255.34 To be completed
Соответствовать 128 To be completed
Соответствовать 1.9e10 To be completed
Соответствовать 123,340.00 To be completed
Пропустить 720p To be completed

Решение Регулярное выражение для этого задания может быть довольно-таки сложным, если принять во внимание дробную часть чисел, показатели степени и всё остальное.

Для примера выше выражение ^-?\d+(,\d+)*(\.\d+(e\d+)?)?$ будет соответствовать строке, которая начинается с необязательного отрицательного знака, одной или нескольких цифр, после которых необязательно следует запятая и ещё несколько цифр, за которыми следует необязательная дробная часть значения, состоящая из точки, одной или нескольких цифр и необязательного показателя степени (символ е), за которым следует ещё несколько цифр.

Это не единственно правильное решение, у вас может быть и альтернативный вариант.

Решите задание выше, чтобы перейти к следующему уроку, либо смотрите Решение.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...

Комментариев: 2

  1. Аватар Stikkerrr:

    .*(?!p) мой вариант соответствует всем строчкам и пропускает последнюю(судя по галочкам и зеленым символам), но кнопка продолжить не работает.

  2. Аватар Sergey:

    Да, регулярки разбирать — тот ещё капец 🙂

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *