2017-01-24 3 views
0

я пытаюсь создать регулярное выражение, которое сделало бы действительнымрегулярное выражение для знаков после запятой

11 
11.1 
11.11 

Но недействителен

11. 
11.111 

Однако мое регулярное выражение

\\d+\\.?\\d{0,2}? 

Позволяет 11.. Как обновить его, чтобы сделать 11. недействительным?

ответ

4

Поместите. и следующие цифры в необязательную группу и сделать минимальную длину конечных цифр 1

\\d+(\\.\\d{1,2})? 
3

Группа точка и дробная часть и сделать эту группу дополнительно:

\\d+(?:\\.\\d{1,2})? 
+0

Какова цель '?:'? – vikingsteve

+0

@ vikingsteve, это означает [не захватывающая группа] (http://stackoverflow.com/documentation/regex/660/capture-groups/2155/backreferences-and-non-capturing-groups#t=201701241306401336622). –

+0

является здесь нужна не захватывающая группа? – vikingsteve

Смежные вопросы