如果失败,如何使 Google 表 REGEXREPLACE return 为空字符串?

how to make Google sheets REGEXREPLACE return empty string if it fails?

我在 google 工作表中使用 REGEXREPLACE 函数来提取 skus 中包含的一些文本。如果找不到文本,它似乎 return 整个原始字符串。是否可以将其 return 改为空字符串?遇到问题是因为它实际上并没有出错,所以使用 iserror 似乎不起作用。

示例:我的 sku 应包含 5 个由下划线字符“_”分隔的独立组。在此示例中,它缺少最后一组,因此它 return 是整个原始字符串。

LDSS0107_SS-WH_5
=REGEXREPLACE($A3,"[^_]+_[^_]+_[^_]+_[^_]+_(.*)","$1")

找不到第五个捕获组,这是正确的...但是我需要它在失败时给我一个空字符串...现在给我整个原始字符串。有什么想法吗??

也许解决方案是添加缺失的组:

=REGEXREPLACE($A1&REPT("_ ",4-(LEN($A1)-LEN(SUBSTITUTE($A1,"_","")))),"[^_]+_[^_]+_[^_]+_[^_]+_(.*)","")

这 returns space 作为缺失组的结果。如果您不想,请使用 TRIM 函数。