Подтвердить что ты не робот

Google Spreadsheets Regex Case нечувствителен (Regexreplace)

Я пытаюсь создать не зависящий от регистра запрос регулярных выражений в Google Spreadsheets с функцией regexreplace. Это возможно? Я пробовал флаг \i и получил ошибку #REF, заявив, что выражение недействительно: = regexreplace ( "Test", "t\i", ") дает ошибку, когда я надеюсь получить" es" в качестве конечный результат.

Возможно ли это? Есть ли флаг чувствительности к регистру в таблицах Google?

Спасибо заранее!

4b9b3361

Ответ 1

AFAIK, единственный способ включить нечувствительность к регистру - JavaScript API в документах google.

По-видимому, синтаксис RE2 поддерживает встроенный модификатор inline (?i), нечувствительный к регистру:

=REGEXREPLACE("Test", "(?i)t", "")

Альтернативой, которая будет работать, является использование класса Character, добавляя оба случая буквы T..

=REGEXREPLACE("Test", "[Tt]", "")

Ответ 2

Я нашел это:

=REGEXREPLACE("Test","(?i)t","")

Он возвращает то, что вы хотите

es

google/re2

Ответ 3

Как писал Александр Иванов,

Да, я понимаю, что эта тема решена. Но я нашел что-то фантастическое!

= REGEXREPLACE ( "Тест", "(? i) t", "") Он возвращает то, что вы хотите

es

P.S.: Пожалуйста, если кто-то знает, почему он работает, тогда комментируйте.

Google использует свой собственный механизм регулярных выражений re2. Использование (? I) позволяет вам устанавливать флаги для поиска без учета регистра https://re2.googlecode.com/hg/doc/syntax.html

Ответ 4

Существует флаг NO для чувствительности к регистру Если у вас более длинная строка, и вы хотите сделать ее нечувствительной к регистру, вам холодно попробуйте использовать строчное регулярное выражение и сделать свой тестовый нижний регистр функцией ниже:   = REGEXREPLACE (LOWER (строка), regex_in_lowercase, замена) в вашем конкретном случае:   = REGEXREPLACE (LOWER ( "тест" ), "t", "") Проблема в том, что выражение захвата должно быть в нижнем регистре! источник: https://productforums.google.com/forum/#!topic/docs/7kNb9LGeIfM