Member 12663465 Ответов: 4

Справка по шаблону регулярных выражений


Я хочу, чтобы регулярное выражение скороговоркой для чисел

у меня есть форма , в которой есть два текстовых поля textbox1, textbox2
textbox1 должен принимать значение только от 0 до 12 а textbox2 должен принимать значение только от 30 до 300

у меня этот шаблон пытался не работать pls помогите предоставив шаблоны для этих двух текстовых полей 1 и textbox2

мой синтаксис шаблона

([0-9][2]|{1,12})$


Что я уже пробовал:

([0-9][2]|{1,12})$

я пробовал это выражение не работает пожалуйста помогите
предоставление паттерна

Richard Deeming

Вы отметили этот вопрос как "C#" и "Java". Это два совершенно разных языка. Какой из них вы используете?

4 Ответов

Рейтинг:
32

Peter Leow

Попробовать это:

^[0-9]$|^1[0-2]$

для первого случая.
Вы должны быть в состоянии выяснить, другой.
30-Минутный Учебник По Регулярным Выражениям[^]


Member 12663465

Спасибо вам сэр
сэр может у PLS помочь со вторым
шаблон принимают только в диапазоне от 30 до 300

Peter Leow

^[3-9][0-9]$|^[1-2][0-9][0-9]$|^300$

Рейтинг:
2

Patrice T

Цитата:
([0-9][2]|{1,12})$
я пробовал это выражение не работает

Первая проблема здесь заключается в том, что {1,12} в вашем регулярном выражении это ничего не значит, оно не является законным в данном контексте.
Вторая проблема-ваши регулярные выражения отсутствуют ^ в начале, что означает, что любая вещь, которая заканчивается тем, что вы хотите, будет соответствовать.
экс: Anything10 будет соответствовать.

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению:
Regexper[^]


Рейтинг:
2

David Crow

Вместо того чтобы использовать регулярное выражение, подумывали ли вы о вызове setFilters() на EditText возражать? Что-то вроде:

EditText et = (EditText) findViewById(R.id.edit1);
et.setFilters(new InputFilter[]{ new InputFilterRange("0", "12")});
...
et.setFilters(new InputFilter[]{ new InputFilterRange("30", "300")});
Конечно, вам нужно будет создать InputFilterRange класс путем расширения InputFilter.


Рейтинг:
0

Jochen Arndt

Вы должны проанализировать входные данные слева направо для всех возможных чисел цифр.

Для значений от 0 до 12 это будет от 0 до 9 и от 10 до 12. Таким образом, возможное регулярное выражение может быть

([0-9])|(1[0-2])

Для 30 до 300 с 30 до 99, 100 до 299 и 300:
([3-9][0-9])|([1-2][0-9][0-9])|(300)

Однако при использовании этого в функции проверки это было бы гораздо проще и быстрее использовать if условия после получения и опциональной обрезки входных данных (что также должно быть сделано для регулярного выражения) и преобразования в целое число.


Member 12663465

этот не работает должным образом
([3-9][0-9])|([1-2][0-9][0-9])|(300)
выручить

Jochen Arndt

Я опустил маркеры начала и конца. Я просто предоставил простые совпадающие части, потому что у меня нет информации, какой механизм регулярных выражений и метод используется. Это также зависит от используемого языка программирования, который может предоставлять функции, которые уже проверяют всю строку.

Попробовать это:
^(([3-9][0-9])|([1-2][0-9][0-9])|(300))$