You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整REGEX公式精准提取全名,排除后续带冒号的前缀词

正则表达式提取全名的公式调整方案

问题说明

通过IMPORTXML抓取网页数据后,需提取Full Name:后的全名,但现有公式会错误带出全名后带冒号的词(如Nickname),同时要保留含连字符、撇号的特殊格式名字(如O'Brien、Smith-Rogers)。

当前使用公式:

=IFERROR(REGEXEXTRACT(REGEXREPLACE(JOIN(" ", IMPORTXML(B13, "//div[@id='meta']")), "\s+", " "), "Full Name:\s*([A-Za-z]+(?:[-'\s][A-Za-z]+)*)"), "")

调整后的公式

=IFERROR(REGEXEXTRACT(REGEXREPLACE(JOIN(" ", IMPORTXML(B13, "//div[@id='meta']")), "\s+", " "), "Full Name:\s*([A-Za-z]+(?:[-'\s][A-Za-z]+)*?)\s+\w+:"), "")

调整逻辑

  1. 启用非贪婪匹配:在原捕获组末尾添加?,将([A-Za-z]+(?:[-'\s][A-Za-z]+)*)改为([A-Za-z]+(?:[-'\s][A-Za-z]+)*?),让正则匹配到第一个终止条件就停止,避免过度抓取后续内容。
  2. 明确终止边界:在捕获组后追加\s+\w+:,指定全名的结束标志为「空格+任意单词+冒号」,精准截断到下一个带冒号的词之前,确保只提取Full Name:到该边界之间的内容。

效果验证

原始文本目标输出调整后公式输出
Full Name: Abraham Lincoln Nickname: Honest Abe.Abraham LincolnAbraham Lincoln
Full Name: John Smith-Rogers Finishing:John Smith-RogersJohn Smith-Rogers
Full Name: David Ben-Williams Prelude:David Ben-WilliamsDavid Ben-Williams
Full Name: Sean O'Brian Nickname:Sean O'BrianSean O'Brian
Full Name: D'Andre Ayton Time:D'Andre AytonD'Andre Ayton
Full Name: Andy Van Slyke Name:Andy Van SlykeAndy Van Slyke

针对提供的网页测试:

  • 提取后输出:Alfonso Ramon Lopez
  • 提取后输出:George Herman Ruth

内容的提问来源于stack exchange,提问作者InStackOfHelp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:45:08