Вопрос: ищу регулярное выражение Google Таблиц, которое захватывает все экземпляры строки между [t- ]
и выводит в соседнюю ячейку столбца в виде массива или какого-либо другого разделителя между совпадениями.
Для следующей строки я пытаюсь извлечь все экземпляры текста между [t- ]
.
A1:
Lorem Ipsum [t- это просто] фиктивный текст [t- печать] и набор [c- индустрия], поэтому [d- это имело бы смысл], что
Ожидаемый результат - это массив всех вхождений в один столбец:
B1:
[просто печать]
Или вывод может быть любым разделителем совпадений
просто | печать
Попытка выполнить следующее с одним текстом в [t- ]
работает нормально, но для нескольких экземпляров извлекается все, что находится между открытым [t-
первого появления и ]
последнего появления:
=REGEXEXTRACT(A1,"\[t- (.*)\]")
Ведущий к:
просто]! фиктивный текст [t- печать
Я также пробовал несколько групп захвата, но это работает, только если я уверен, что между [t- ]
есть только два экземпляра текста - может быть n
экземпляров на строку. Также он не выводит результаты в архив в одном столбце, а распределяется по нескольким столбцам:
=regexextract(A1, "(\[t- (.*)\]).*(\[t- (.*)\])" )
РЕДАКТИРОВАТЬ: я получил пару ответов о Regex, который работает с другими инструментами / языками (например, PHP или Javascript), но не с Google Таблицами. Вот синтаксис регулярных выражений Google Таблиц.
РЕДАКТИРОВАТЬ 2. В приведенном выше примере строки есть другой текст в скобках, помеченный другими буквами, например, [c- industry]
и [d- it would make]
. Их не включать. Только текстовые сообщения в [t- ]
(с "t-") должны быть возвращены.
\[t-([^]]*)\]
. Вы можете проверить и получить объяснение здесь, regex101.com/r/iemQDb/1. - person Andrei Odegov   schedule 03.02.2019(?:^|\])[^\[]*(?:\[t-|$)
регулярного выражения? проверьте здесь regex101.com/r/WwFjcy/1. - person Andrei Odegov   schedule 03.02.2019[c- ]
или[d- ]
. Ему нужно только получать текст в[t- ]
и игнорировать замену текста, когда есть другие скобки (например,[c- ]
или[d- ]
) - person Growler   schedule 03.02.2019@Growler
, все тот же REGEXREPLACE, но с новым регулярным выражением^.*?\[t-|(?<=\[t-).*?\K\].*?(?:\[t-|$)
. Проверьте это здесь, regex101.com/r/WwFjcy/2. - person Andrei Odegov   schedule 04.02.2019