escape-метасимволы [] re2 в таблицах Google

Я хочу использовать функцию REGEXEXTRACT в таблицах Google для извлечения строки между скобки.

бывший. в ячейке A1 у меня есть текст: qwertyui (asdfghjk)
Мне нужен текст asdfghjk.

Функция =REGEXEXTRACT(A1, "\(([A-Za-z /]+)\)") работает нормально, но когда у меня есть текст типа qwertyui ([asdfghjk]), функция ничего не возвращает, потому что используемое мной регулярное выражение не имеет квадратных скобок.

Я попытался добавить символы «[» и «]», но они метасимволы. Я использовал обозначение \[\]), но не работает.
В таблицах Google используется регулярное выражение re2. Обозначения правильные?

Кто-нибудь знает, как убежать от метасимволов (или где я ошибаюсь)?


person cicciocappuccio    schedule 05.01.2016    source источник


Ответы (2)


Используйте "\(([A-Za-z\[\] /]+)\)" или («умное» размещение) "\(([][A-Za-z /]+)\)".

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

or

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

Однако, поскольку вы просто извлекаете любой текст внутри круглых скобок, вы можете использовать инвертированный класс символов [^()], который соответствует любому символу, кроме ( и ).

=REGEXEXTRACT(A1, "\(([^()]+)\)")

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

person Wiktor Stribiżew    schedule 05.01.2016
comment
не работает. сообщалось об ошибке: Ошибка Значение параметра 2 функции REGEXEXTRACT (([] [A-Za-z /] +)) не соответствует тексту значения параметра 1 функции REGEXEXTRACT [Категория 1] ([Другое 1]). - person cicciocappuccio; 06.01.2016
comment
Означает ли это, что вы хотите заключить подстроку в круглые скобки? Это намного проще сделать с инвертированным символьным классом [^()]: =REGEXEXTRACT(A1, "\(([^()]+)\)") - person Wiktor Stribiżew; 06.01.2016
comment
Привет, Стрибижев, все ваши решения верны, но я обнаружил, что это не работает, если текст в ячейке является результатом функции importRange. Может это ошибка. Странно, для текста Категория 1 (Other 1) все работает нормально. Однако большое спасибо. - person cicciocappuccio; 06.01.2016

На самом деле вы могли бы просто упростить это до следующего:

=REGEXEXTRACT(A1,"\((.*\))")
person Aurielle Perlmann    schedule 28.02.2016