LookerStudio中的REGEXP_REPLACE问题

nkkqxpd9  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(121)

目前,我面临着一个问题,我在LookerStudio中使用数字作为文本,并希望在保持其作为文本的同时为其添加一千个分隔符。
我使用的值是12345678,我希望它是12345678
我尝试使用以下REGEXP_REPLACE函数:

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

字符串
这导致了一个损坏的字段。经过进一步的调查,引用https://github.com/google/re2/wiki/Syntax,?=和?!部分不受支持。有人可以帮助解决这个问题吗?

utugiqy6

utugiqy61#

您不能在RE 2模式中使用lookarounds。
但是,如果您知道可以有最大数量的数字分组(这里通常不超过四个-高达数十亿),则可以采用一种变通方法,并嵌套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替换用逗号和Group 1值替换匹配项。

相关问题