RegEx получает последнее совпадение формата даты из строки внутри ячейки Google Sheets - PullRequest
1 голос
/ 29 мая 2020

Моя цель - извлечь строку даты и следующие символы с помощью Regex в Google Таблицах (функция листов: regexextract), где строка является последней строкой ячейки и начинается с формата даты «yyyy-DD-MM», за которым следует ":". Итак, RegExpression, которое у меня сейчас есть, выглядит так: \d{4}-\d{2}-\d{2}:.+

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

Образец ячейки:

2020-05-20: Status update blah blah
2020-05-27: PO Issued blah blah

Запрошенный результат: Я хочу Конечный результат должен быть строкой, начинающейся с даты и символов, следующих за «2020-05-27: PO Issued blah blah», что является последним результатом. Однако я всегда получаю первое совпадение, которое в приведенном выше примере: «2020-05-20: обновление статуса бла-бла»

Также я делаю это в таблицах Google, используя regexextract () , который не должен 'Не имеет значения в регулярном выражении, но просто хотел упомянуть об этом .

Изменить: Я обнаружил, что Sheets использует RE2, поэтому я думаю, это имело значение.

1 Ответ

1 голос
/ 03 июня 2020

Вы можете использовать

=REGEXEXTRACT(A1, "(?m)^\d{4}-\d{2}-\d{2}:.*\z")

См. Демонстрацию RE2 регулярного выражения и снимок экрана Google Таблиц:

enter image description here

Регулярному выражению (?m)^\d{4}-\d{2}-\d{2}:.*\z соответствует

  • (?m) - модификатор MULTILINE, который позволяет ^ соответствовать началу строки, а $ соответствовать концу строки
  • ^ - начало строки
  • \d{4}-\d{2}-\d{2}:.* - 4 цифры, -, 2 di git, -, 2 цифры, : и затем остаток строки с . по умолчанию не соответствует символам разрыва строки
  • \z - самый конец строки (на него не влияет модификатор (?m)).

Обратите внимание, что (?s).*\n(\d{4}-\d{2}-\d{2}:.*) Я предложил в верхнем комментарии под вопросом будет соответствовать последним строкам , начиная с даты, см. демонстрацию регулярного выражения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...