Что такое хорошее регулярное выражение для обработки числа с плавающей запятой (например, Java Float)
Ответ должен соответствовать следующим целям:
1) 1.
2) .2
3) 3.14
4) 5e6
5) 5e-6
6) 5E+6
7) 7.e8
8) 9.0E-10
9) .11e12
Таким образом, он должен
- игнорировать предыдущие знаки
- требуется, чтобы первый символ слева от десятичной точки был ненулевым
- разрешить 0 или более цифр по обе стороны от десятичной точки
- разрешить число без десятичной точки
- разрешить научную нотацию
- разрешить капитальные или строчные буквы 'e'
- разрешить положительные или отрицательные показатели
Для тех, кто задается вопросом, да, это проблема домашних заданий. Мы получили это как задание в моем классе CS для выпускников в компиляторах. Я уже включил свой ответ для класса и опубликую его как ответ на этот вопрос.
[Послесловие] Мое решение не получило полного кредита, потому что оно не обрабатывало более 1 цифры слева от десятичной дроби. В задании упоминалось обращение к поплавкам Java, хотя ни один из примеров не имел более 1 цифры слева от десятичной. Я опубликую принятый ответ в его собственном сообщении.