LookerStudio 中的REGEXP_REPLACE问题

REGEXP_REPLACE issue in LookerStudio

提问人:Ruan Brand 提问时间:11/16/2023 最后编辑:Wiktor StribiżewRuan Brand 更新时间:11/20/2023 访问量:54

问:

目前,我面临着一个问题,即我在 LookerStudio 中使用数字作为文本,并希望在将其保留为文本的同时为其添加一千个分隔符。

我使用的值是 12345678,我希望它是 12,345,678

我尝试使用以下功能:REGEXP_REPLACE

CONCAT("Value = ", REGEXP_REPLACE(CAST(my_value AS TEXT),"\\B(?=(\\d{3})+(?!\\d))", ","))

这导致了一个破碎的字段。经进一步调查,参考 https://github.com/google/re2/wiki/Syntax,?= 和 ?!不支持部分。有人可以协助解决方法或新方法吗?

正则表达式 looker-studio

评论

2赞 Wiktor Stribiżew 11/16/2023
您可以通过根据需要嵌套任意数量的调用,然后在左侧和右侧嵌套逗号来解决此问题。REGEXP_REPLACE(..., ",*(\\d{3})\\b,*", ",$1")TRIM
0赞 Ryszard Czech 11/23/2023
恭喜您获得新特权!

答:

0赞 Wiktor Stribiżew 11/20/2023 #1

不能在 RE2 模式中使用环理。

但是,如果您知道可以有最大数量的数字分组(这里通常不超过四个 - 最多数十亿个),并且嵌套以下函数,则可以解决此问题REGEXP_REPLACE

REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(col, ",*(\\d{3})\\b,*", ",$1"), ",*(\\d{3})\\b,*", ",$1"), ",*(\\d{3})\\b,*", ",$1"), ",*(\\d{3})\\b,*", ",$1")

然后,修剪字符串开头/结尾处的逗号。

模式匹配

  • ,*- 零个或多个逗号
  • (\d{3})- 第 1 组:三位数字
  • \b- 单词边界
  • ,*- 零个或多个逗号。

替换项将匹配项替换为逗号和组 1 值。,$1