Google Sheets ARRAYFORMULA生成图片路径的字符替换优化问题
公式优化方案
最终可用公式
=ARRAYFORMULA( IF(ROW(A:A)=1,"@Icon", IF(B:B="",, "../../../../../../_Assets/Icons/"& LOWER( REGEXREPLACE( REGEXREPLACE(B:B, "\s*-\s*", "-"), "[#%&{}<>*?/$!'\x22`:@+`|=\\\s]", "_" ) )&".png" ) ) )
实现逻辑说明
- 优先处理横杠格式:第一层
REGEXREPLACE匹配所有前后附带任意数量空格的横杠,统一替换为单个横杠,从根源上避免后续替换空格时生成_-_的问题 - 批量替换特殊字符:第二层
REGEXREPLACE的正则字符集已经覆盖你列出的所有需要替换的特殊字符,所有匹配到的字符会直接替换为下划线 - 最后统一转换为小写,拼接固定路径前缀和
.png后缀
如果运行时正则内的双引号识别异常,可以把正则里的\x22替换为两个连续双引号""即可。
效果验证
- 输入
Title - Subtitle,输出为../../../../../../_Assets/Icons/title-subtitle.png - 输入
Title text/string - Subtitle,输出为../../../../../../_Assets/Icons/title_text_string-subtitle.png
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

