Регулярное выражение для проверки ячейки Excel

Я работаю над приложением php, где пользователь должен вставить идентификатор ячейки Excel (например, A1 или же AB32), значение, которое хранится в базе данных для последующего использования, и я пытаюсь проверить формат идентификатора ячейки с помощью регулярного выражения, но оно просто не работает, это то, что я получил до сих пор.

^[a-zA-Z]\d$

1

Решение

Там потрясающе ответ в этом вопросе @BartKiers, где он строит функцию для построения регулярных выражений такого типа, которые должны соответствовать диапазонам от x до y. Его логика прекрасно переносится в текстовые диапазоны и протестировано на PCRE диалекте на regex101.com.

Регулярное выражение:

^(?:[A-Z]|[A-Z][A-Z]|[A-X][A-F][A-D])(?:[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9]|10[0-3][0-9][0-9][0-9][0-9]|104[0-7][0-9][0-9][0-9]|1048[0-4][0-9][0-9]|10485[0-6][0-9]|104857[0-6])$

Который в основном говорит:

  • Колонны часть: A-Z, или же A-Z с A-Z, или же A-X с A-F с A-D

  • Часть строк: 1-9, или же 1-9 с 0-9, или же 1-9 с 1-9 с 0-9 и т.д. вплоть до максимума 104857 с 0-6

Это соответствует следующему:

A1
AA11
AAA111
ZZ12
YY1048575
XFD1048576

Это не будет соответствовать следующему:

A0
AA01
AAZ1111111
XFD1048577
XFE1048576
ZZZ333
ZZZ9999999

Вот схема:

введите описание изображения здесь

1

Другие решения

попробуй это ^[a-zA-Z]{1,4}(\d+)$

  • ^ ([a-zA-Z] +): от 1 до 4 букв
  • (\ d +) $: заканчивается одной цифрой или более
0

По вопросам рекламы [email protected]