Таблицы Google: - Проверяющая ячейка содержит только буквенно-цифровые символы и знак подчеркивания.

Как использовать пользовательскую формулу в таблицах Google (с регулярным выражением re2) разрешить только буквенно-цифровые символы и символы подчеркивания в содержимом ячейки?


person Orion    schedule 17.03.2015    source источник


Ответы (2)


Для проверки регулярного выражения используются 3 основные формулы (документацию по формулам можно найти ЗДЕСЬ ):

  • REGEXEXTRACT : извлекает совпадающие подстроки в соответствии с регулярным выражением.
  • REGEXMATCH : Соответствует ли фрагмент текста регулярному выражению.
  • REGEXREPLACE : Заменяет часть текстовой строки другой текстовой строкой с использованием регулярных выражений.

Вы можете использовать эти формулы для проверки выражений. Эта страница должна помочь вам узнать, как использовать эти формулы Обычные Выражения - Часть 1. Также ознакомьтесь с регулярными выражениями, часть 2.

В качестве альтернативы, если вы используете форму Google для отправки данных в электронную таблицу, вы можете добавить проверку поля для каждого вопроса.

person Brady    schedule 17.03.2015
comment
Я попробовал REGEXMATCH перед публикацией вопроса. Мой вопрос: что такое правильное регулярное выражение. - person Orion; 17.03.2015
comment
Вот ссылка на re2: re2.googlecode.com/hg/doc/syntax.html Большинство регулярных выражений для буквенно-цифровой последовательности с символами подчеркивания выглядят примерно так: [a-zA-Z0-9_]* где: a-z = строчная буква A-Z = любая прописная буква 0-9 = любая цифра _ : подчеркивание Я поставил * для обозначения 0 или более буквенно-цифровых символов. Если вы хотите, чтобы строка имела определенную длину или шаблон, взгляните на раздел повторений приведенного выше справочника. - person Brady; 18.03.2015
comment
@Orion, если вы настаиваете на правильном регулярном выражении, возможно, вам следовало пометить свой вопрос как О регулярном выражении. Тот факт, что вы «пробовали RegexMatch перед публикацией», не смогли отметить вопрос о регулярном выражении, а затем неверно процитировали, о чем ваш фактический вопрос (ваш вопрос НЕ «какое правильное регулярное выражение»), заставляет меня думать, что вы просто травите людей сделать работу для вас. StackOverflow не для этого. Регулярное выражение Брейди в его ответе должно работать в сочетании с «RegexMatch». Вероятно, он не опубликовал это как ответ, потому что вы не отметили это как вопрос регулярного выражения. - person 1owk3y; 17.06.2019

Мне нужна проверка, которая также обнаружит это. Вот мое рабочее решение.

=IF(REGEXMATCH(A1, "[^A-Za-z0-9_-]+"), FALSE, TRUE)

Эта проверка Regex [^A-Za-z0-9_-]+ возвращает TRUE, если что-либо присутствует в строке, ЗА ИСКЛЮЧЕНИЕМ букв, цифр, знаков подчеркивания и тире (^ утверждает «отрицательный набор»)

Затем мы просто переворачиваем логическую логику (используя «ЕСЛИ... ЛОЖЬ, ИСТИНА»). Это приводит к отклонению недопустимых символов.

person 1owk3y    schedule 17.06.2019