REGEX.EXTRACT
REGEX.EXTRACT 函数返回来源字符串中给定正则表达式的匹配项或匹配项中的捕获组。
REGEX.EXTRACT(来源字符串, 正则表达式字符串, 匹配出现次数, 捕获组出现次数)
来源字符串: 要匹配的字符串值。
正则表达式字符串: 代表正则表达式的字符串值,用于与来源字符串匹配。
匹配出现次数: 可选整数,如果存在多个匹配项,则表示应该返回哪个匹配项。 接受负整数并允许向后获取匹配项,因此 -1 为最后一个匹配项,以此类推。如果给定 0,将返回所有匹配项的数组。如果被忽略,则返回第一个匹配项。
捕获组出现次数: 可选整数,如果正则表达式中有捕获组,则表示应该返回匹配项中的哪个捕获组。 不接受负值。如果返回 0,将返回所有捕获组的数组。如果被忽略,则返回完整的匹配项。
注释
正则表达式字符串必须符合 ICU 标准。
示例 |
---|
如果您的数据无法轻松适合电子表格的行和列,您可以使用 REGEX.EXTRACT 进行简化。例如,在下方的表格中,数据具有一定的结构,但很难将每条评论的数据手动分成多个单元格。 |
A | |
---|---|
1 | 用户评论 |
2 | 电子邮件:jtalma@icloud.com 姓名:Julie Talma 日期:2021/5/17 |
3 | 电子邮件:danny_rico@icloud.com 姓名:Danny Rico 日期:2021/6/2 |
若要解决此问题,您可以为表格中的“姓名”、“电子邮件”、“评分”和“日期”添加更多列,然后使用 REGEX.EXTRACT 查找想要的数据并在单元格中返回该数据。 例如,您可以输入下方的公式以返回姓名: 此公式中使用了以下参数:
针对每行数据,可重复使用此公式以返回回复调查的每个人的姓名,方法是更改来源字符串以匹配包含用户评论信息的其他单元格。 |
若要解决此问题,您可以为表格中的“姓名”、“电子邮件”、“评分”和“日期”添加更多列,然后使用 REGEX.EXTRACT 查找想要的数据并在单元格中返回该数据。 例如,您可以输入下方的公式: 此公式中使用了以下参数:
|
通过匹配出现次数重新整理列表中的数据 |
---|
有时,您可能拥有如下表(标题为“供应商”)所示的数据,其将值分组在一个单元格中: |
供应商 | 物品 |
---|---|
A | 扁豆、鹰嘴豆、棉豆 |
B | 苹果、橙子、柠檬 |
C | 藜麦、大米、鼠尾草 |
若要基于店铺和排名来区分值,您可以先新建一个表格,如下表所示: |
A | B | C | D | |
---|---|---|---|---|
1 | 排名 | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
若要返回供应商 A 排名最高的项目“扁豆”,您可以在新表格的单元格 B2 中使用如下类似公式以返回供应商 A 排名最高的项目“扁豆”: 此公式中使用了以下参数:
|
您可以轻松更改上述公式以搜索整个表格中的其他供应商和其他项目。
|
其他示例 |
---|
假设 A1 为“marina@example.com john@example.ca mike@example.de”。 =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") 返回“marina@example.com”。 =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2) 返回“john@example.ca”。 =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", -1) 返回“mikeexample.de”。 =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 1, 1) 返回“marina”。 =REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2, 2) 返回“example.ca”。 |