Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

Регулярное выражение для строки из чисел, не начинающейся с нуля

#java #регулярные_выражения


Ожидание: строка содержит или 1 или 2 числа, строка не может начаться с 0


Пробую так: "^[1-9]\\d{1,2}&" - не подходит
Пробую так2: ^[^0]\\d{1,2}& - не подходит (числа 12, 9, 33 и др не принимаются)


Что я делаю не так? по литературе [^pattern] должно исключить вхождение, а где ^-&
должно проверить строгое вхождение чисел
    


Ответы

Ответ 1



строка содержит или 1 или 2 числацифр, строка не может начаться с 0 Рекомендую использовать ^[1-9]\\d?$ Это выражение находит строки из 1-й или 2-х цифр, не начинающиеся с 0. Демо ^ - начало строки [1-9] - 1 цифра от 1 до 9 (0 исключен) \\d? - 1 или 0 цифр $ - конец строки NB: При использовании String.matches метасимволы ^ и $ не требуются.

Ответ 2



[1-9]?[0-9] Первая цифра ([1-9]) входит не обязательно (?), вторая ([0-9]) обязательно. "Строгое совпадение" обозначается как ^...$ (а не &), но в Java принято использовать вместо этого метод Matcher.matches()

Ответ 3



Для строки из чисел ^[1-9][0-9]*$ Для строки из цифр ^[1-9][0-9]?$

Ответ 4



Вы немного перепутали метасимвол конца строки (знак доллара, $) с амперсандом (амперсанд, &). После небольшого исправления все должно взлететь: "^[1-9]\\d{1,2}$"

Ответ 5



на ext js делал так regex: /^[1-9]{1,2}$/,

Комментариев нет:

Отправить комментарий