首页 > 解决方案 > 正则表达式:提取 N 个字符之前的所有完整单词

问题描述

我正在寻找一种简短的方法来捕获句子的第一部分(完整的单词),直到第 30 个字符。

示例:“Lorem ipsum dolor sit amet, consectetur adipiscing elit”(55 个字符)-->“Lorem ipsum dolor sit amet”(28 个字符)

我将在 Google Sheet 中使用它,因此解决方案可以是 RegEx 和公式的组合,但它需要超级简洁,因为它将应用于大量数据。

标签: regexgoogle-sheets

解决方案


如果您想要一个非常简洁的公式,您可以使用 Apps Script Custom Function

首先,通过选择 打开绑定脚本Tools > Script editor,并将以下函数复制到脚本中(检查内联注释):

function FIRST_WORDS(input, number) {
  if (input.length <= number) return input;
  input = input.substring(0, number + 1);
  const lastSpace = input.lastIndexOf(" ");
  if (lastSpace === -1) return "";
  return input.slice(0, lastSpace);
}

定义后,您可以像使用任何工作表内置函数一样使用此函数。您只需要指定源范围和字符数(在本例中为 30):

在此处输入图像描述

参考:


推荐阅读