Regex положительный взгляд назад в Google Sheets - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть Google Sheet со списком транзакций.Мне нужно выделить до трех слов или чисел в столбце E, которые идут после слова «конец» в столбце D. Правильная функция регулярного выражения должна быть положительной, но не поддерживается в RE2 (источник: Использование Positive-Lookahead (? = Regex) с re2 ).

Эта формула возвращает ошибку в GSheets: = REGEXEXTRACT (D1; "(? <= End \ s) (\ w +)")поэтому я пришел к выводу, что в этом случае регулярное выражение является тупиком. </p>

Как получить запрошенный результат в GSheets?

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете использовать группу захвата в своем регулярном выражении, чтобы REGEXEXTRACT возвратил только эту захваченную часть:

=REGEXEXTRACT(D1;"end\s*(\w+)")

Если вам нужно вернуть 1, 2 или 3 слова, разделенные пробелами, после end, используйте

=REGEXEXTRACT(D1;"end\s*(\w+(?:\s+\w+){0,2})")

См. онлайн-демонстрацию (регулярное выражение Golang также использует RE2).

Подробности

  • end - end
  • \s* - 0+ пробелов
  • (\w+(?:\s+\w+){0,2}) - Группа захвата 1:
    • \w+ - 1+ слов символов (буквы, цифры или _)
    • (?:\s+\w+){0,2} - 0, 1 или 2 вхождения
      • \s+ - 1+ пробелы
      • \w+ - 1+слово chars.
...