Looker Studio中为文本型数字加千位分隔符的REGEXP_REPLACE问题
解决Looker Studio中为文本数字添加千位分隔符的问题
因为RE2正则语法不支持正向/负向预查,你之前用的REGEXP_REPLACE写法没法生效,这里给两个可行的解决方案:
方案一:使用内置的FORMAT_NUMBER函数(推荐)
这是最简洁可靠的方法,先把文本格式的数字转成数值类型,用内置函数格式化后再转回文本拼接:
CONCAT("Value = ", FORMAT_NUMBER(CAST(my_value AS NUMBER), "#,###"))
这个方法自动适配任意长度的数字,比如输入12345678会输出Value = 12,345,678,输入123则输出Value = 123,无需额外调整。
方案二:使用RE2兼容的正则替换(适合必须用正则的场景)
如果因为某些限制必须用正则,可以通过多次从右往左分组替换来实现,示例如下:
CONCAT("Value = ", REGEXP_REPLACE( REGEXP_REPLACE( CAST(my_value AS TEXT), "(\\d)(\\d{3})$", "\\1,\\2" ), "(\\d)(\\d{3},)", "\\1,\\2" ) )
这个写法先处理最后三位,再处理前面的三位分组,对8位、9位数字都能生效,但如果数字长度超过9位,需要再嵌套一层REGEXP_REPLACE,灵活性不如内置函数。
内容的提问来源于stack exchange,提问作者Ruan Brand
相关产品推荐
相关产品推荐

