Google Sheets提取带单位数值自定义函数适配空格分隔场景修改求助
适配后的EXTRACTMEASUREMENT自定义函数
修改后完整代码
/** * @customfunction */ function EXTRACTMEASUREMENT(input) { // 匹配规则:数值+任意数量空格+单位字符,分别捕获数值、单位两个分组 const matchRule = /(\d+)\s*([a-zA-Zα-ωΑ-Ω]+)/g const resultArr = [] let currentMatch // 遍历所有符合规则的匹配项 while((currentMatch = matchRule.exec(input)) !== null) { // 直接拼接数值和单位,自动消除二者中间的空格 resultArr.push(currentMatch[1] + currentMatch[2]) } // 不同度量结果之间用空格分隔后返回 return resultArr.join(' ') }
实现效果说明
输入包含12 kg、1 L、50gr的文本时,可直接输出预期格式12kg 1L 50gr,同时兼容数值与单位直接连接、中间带空格的两种场景。
核心修改点
- 调整正则匹配逻辑:新增
\s*规则匹配数值与单位之间的任意数量空格,同时用分组分别捕获数值、单位部分,避免无关字符混入 - 优化结果处理逻辑:遍历匹配项直接拼接数值与单位,无需额外做全局特殊字符清洗,逻辑更简洁,出错概率更低
内容的提问来源于stack exchange,提问作者BegCoder
相关产品推荐
相关产品推荐

