Что такое регулярное выражение для & ldquo; Десятичное число, за исключением zero & rdquo; [Дубликат]

Вы можете использовать fileWriter с флагом, установленным на true , для добавления.

  try {String filename = "MyFile.txt  «;  FileWriter fw = new FileWriter (имя файла, true);  // true добавит новые данные fw.write ("add a line \n"); // добавляет строку в файл fw.close ();  } catch (IOException ioe) {System.err.println ("IOException:" + ioe.getMessage ());  }  
19
задан MikeTWebb 22 December 2011 в 23:33
поделиться

4 ответа

Как насчет этого:

^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$

Объяснение:

^            # Start of string
\s*          # Optional whitespace
(?=.*[1-9])  # Assert that at least one digit > 0 is present in the string
\d*          # integer part (optional)
(?:          # decimal part:
 \.          # dot
 \d{1,2}     # plus one or two decimal digits
)?           # (optional)
\s*          # Optional whitespace
$            # End of string

Тест в Python:

>>> import re
>>> test = [".1", "0.1", "1.12", "123.12", "92", "092", "092.13", "0", "0.0", "0.00", "00", "1.234", "-1", "-1.2"]
>>> r = re.compile(r"^\s*(?=.*[1-9])\d*(?:\.\d{1,2})?\s*$")
>>> for item in test:
...     print(item, "matches" if r.match(item) else "doesn't match")
...
.1 matches
0.1 matches
1.12 matches
123.12 matches
92 matches
092 matches
092.13 matches
0 doesn't match
0.0 doesn't match
0.00 doesn't match
00 doesn't match
1.234 doesn't match
-1 doesn't match
-1.2 doesn't match
43
ответ дан Tim Pietzcker 15 August 2018 в 19:51
поделиться
  • 1
    Это путь. Имейте это upvote. – Regexident 22 December 2011 в 23:36
  • 2
    Это близко. Единственное, чего он не допускает, это: .9 без начального нуля. Пользователю не нравится вводить нуль. – MikeTWebb 22 December 2011 в 23:50
  • 3
    +1 - и мне очень нравится ваш стиль комментариев! 8 ^) – ridgerunner 23 December 2011 в 00:02
  • 4
    Как разрешить запятые для указанного выше регулярного выражения i.e для десятичных чисел, больших нуля? ex: 123,45.67. Будет ли это работать: ^ \ s * (? =. * [1-9,]) \ d * (?: \. \ D {1,2})? \ S * $ – Vishal I Patil 29 December 2015 в 08:08
  • 5
    Нет, это не сработает (так как вы можете легко проверить себя). Вы могли бы использовать ^\s*(?=.*[1-9])[\d,]*(?:\.\d{1,2})?\s*$, но это также позволило бы 1,2,3.45 или ,,,,,1 и другие бессмысленные числа. – Tim Pietzcker 29 December 2015 в 10:28

/^[0-9]*(\.{1})?([0-91-9][1-9])?$/

попробуйте это, он передает все ваши случаи

1
ответ дан bharath muppa 15 August 2018 в 19:51
поделиться
  • 1
    Это (неправильно) не соответствует .1, 0.1 и (неверно) соответствует 0, 00 – AjahnCharles 23 October 2017 в 16:27

Это выражение не допускает никаких белых пробелов в начале и в конце

/^\d*(?:\.\d{1,2})*$/
-3
ответ дан Bugs 15 August 2018 в 19:51
поделиться
  • 1
    Это соответствует: 0, 0.0, 0.00, 00 (все из которых были отрицательными тестовыми случаями, заданными в вопросе). – AjahnCharles 20 October 2017 в 08:26
  • 2
    ^ (([1-9] + ([.] [0-9] {1,3})?) | (0 [.] [0-9] {2} [1-9])) $ думаю, что это будет обрабатывать условие – Bikrant Jena 23 October 2017 в 11:38
  • 3
    Новый шаблон в вашем комментарии (неверно) не соответствует .1, 0.1, 092, 092.13 и (неверно) соответствует 1.234 – AjahnCharles 23 October 2017 в 16:19
  • 4
    Проверьте свое регулярное выражение перед публикацией в качестве ответа. Существует много онлайн-тегов регулярных выражений, таких как regexr.com – Joao Vitorino 4 November 2017 в 03:24

[0-9]+\.[0-9]{1,2}

Это найдет:

  • По крайней мере одно число
  • Десятичная точка
  • Один или две цифры после десятичной точки.
1
ответ дан SpoonNZ 15 August 2018 в 19:51
поделиться
  • 1
    Это позволяет 0.0 и не допускает целых чисел. – Tim Pietzcker 22 December 2011 в 23:27
  • 2
    Также разрешает 0.00 (неправильно) и запрещает .1 (неправильно) – AjahnCharles 23 October 2017 в 16:28
Другие вопросы по тегам:

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