На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > Регялрное выражение захватывает не нужные данные
      Всем привет! Имею следующее выражение для проверки дробного числа:

      ExpandedWrap disabled
        /^(?:0|[1-9]\d?)(?:\.\d{1,2})?$/

      Нужно чтобы не захватывало 0.0 и 0.00. Пока не могу придумать как реализовать, нужна ваша помощь. Спасибо!
        Цитата
        Нужно чтобы не захватывало 0.0 и 0.00.

        Вроде бы, в регвыре для разбора email есть нужный кусок.
          ExpandedWrap disabled
            (?:\d*[1-9]\d*\.\d{1,2}|0+\.(?:0[1-9]|[1-9]\d?))

          логика:
          либо
          {,} цифр, 1 из которых (любая) не ноль - до точки, и
          1-2 цифры (любые) после точки
          либо
          {1,} нулей до точки, и
          0 и не-ноль после точки, либо (не-ноль и (любая цифра, включая ноль, или пустота)) после точки

          ExpandedWrap disabled
            >>> re.findall(r'\b(?:\d*[1-9]\d*\.\d{1,2}|0+\.(?:0[1-9]|[1-9]\d?))\b',
            ... ' 1.2 10.2 10.02 10.0 0.10 0.0 0.00 0.05 00.00 01.02 1000.23 00.0 123.45 00.12')
            ['1.2', '10.2', '10.02', '10.0', '0.10', '0.05', '01.02', '1000.23', '123.45', '00.12']


          Добавлено
          Цитата AVA12 @
          Вроде бы, в регвыре для разбора email есть нужный кусок.

          оО это шутка такая?
          проще самому написать чем читать ЭТО.
          Сообщение отредактировано: xJI0pLLuaH -
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0270 ]   [ 15 queries used ]   [ Generated: 28.03.24, 08:55 GMT ]