Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Регулярное выражение для номера ячейки Excel


Автор: _Y_ 31.12.2010, 19:54
Честно говоря в регулярных выражениях я не силен да и пользоваться ими приходится очень редко. Поэтому просто прошу дать готовый ответ.

Пользователь должен ввести номер ячеки Excel. Надо проверить правильность ввода. Подозреваю, что лучше регулярных выражений для этого ничего нет.

Номер ячейки Excel выражается как одна или две латинские буквы, после которых идет как минимум одна цифра. Как это проверить?

Спасибо

Автор: patap 31.12.2010, 20:59
это для большого регистра букв, но можно добавить в [A-Z] диапазон для маленьких букв [a-zA-Z], либо использовать модификатор регистронезависимости i
Код

^[A-Z]{1,2}\d+$

Автор: _Y_ 1.1.2011, 13:48
Цитата(patap @ 31.12.2010,  20:59)
Код

^[A-Z]{1,2}\d+$

Спасибо, но это выражение решает проблему лишь частично. Оно, вроде бы, считает валидными значения с нулевым номером ряда, а таких номеров нет в Excel. Например, вот такие значения это выражение пропускает как валидные:
A0
A00
A000
AA0

и т.п.

Автор: nc30 1.1.2011, 14:15
Может так? 
^[A-Z]{1,2}[1-9]\d*$

Забавную тут штуку увидел: http://realcode.ru/regexptester/

Автор: _Y_ 1.1.2011, 14:40
Цитата(nc30 @  1.1.2011,  14:15 Найти цитируемый пост)
^[A-Z]{1,2}[1-9]\d*$

Спасибо. Этот вариант вроде работает правильно.

Кстати, таких конструкторов-тестеров в сети много. http://www.regexplanet.com/simple/index.html Но моих знаний регулярных выражений на них тоже не хватает smile  smile 

Автор: patap 1.1.2011, 18:02
Код

^[A-Z]{1,2}[1-9]\d*$

да, я не учел того что нельзя допускать нулевые варианты

Автор: nc30 2.1.2011, 19:23
Цитата(_Y_)

Кстати, таких конструкторов-тестеров в сети много. Вот, например. 

Зато в моем есть классная http://realcode.ru/regexptester/Help.aspx!  smile   

Цитата(patap)

да, я не учел того что нельзя допускать нулевые варианты

Говоря по секрету, я сам бы это не учел, т. к. регулярных выражений не знаю, как и _Y_. Но в итоге все получилось правильно smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)