2016-07-27 22 views
-4

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

1 
.25 
0.25 
+0

@anubhava: Не будет работать для второго примера. – Jan

+0

@ chris85: Убей меня миллисекундами :) – Jan

+0

@Jan yeee haw, http://nerdist.com/wp-content/uploads/2015/12/Speedy-Gonzales.jpg – chris85

ответ

2

Моей догадку на выражениях будет работать для вас будет:

^(\.\d+|\d+(?:\.\d+)?)$ 

| является или.
^ - начало строки.
$ - это конец.
\. - буква ..
\d - это номер.
+ - квантификатор, означающий один или несколько предыдущих символов/группы.
? делает предыдущую группу/символ необязательной.

Таким образом, \.\d+ является ., то любое количество цифр. Затем \d+(?:\.\d+)? - это число, за которым следуют необязательные значения десятичных знаков.

Regex Демо: https://regex101.com/r/uG2tT4/1

m и/или g модификатор может потребоваться в зависимости от того, где вы используете это. Также может потребоваться преобразование \d в числовой класс символов [0-9].

0

С «универсального регулярного выражения» (все реализации на всех языках), это будет безопасно использовать \d*\.\d*

Это просто разбивается на

\d* = Match for 0 or more digits at the beginning 
\. = After that match for a period (notice that we escaped the period. 
     Not escaping the period has a different meaning altogether.) 
\d* = Match for another set of one or more digits 

Это стремится упростить регулярные выражения, хотя он может быть не самым эффективным, особенно если он предназначен для большого набора

Для учебных пособий по регулированию аги выражение, я могу предложить RegularExpressions.info или проверить Дерек Banaś видео-уроки по регулярным выражениям на Youtube

+0

'.' будет действительным с этим выражением. '\ d' недоступен на всех языках. – chris85

+0

Если \ d недоступен на всех языках, вы можете пойти на [0,9]. BTW я нашел этот классный сайт www.regexone.com, где вы можете проверить свои регулярные выражения – cr05s19xx

+0

В дополнение к "." когда он не должен, «1» терпит неудачу, когда он пройдет. – rgthree