每个单词的第一个大写字母

问题描述 投票:0回答:2

我正在使用Google Data studio 创建报告,数据是直接从Google Analytics 获取的。关于网络流量测量。

问题是我想可视化顶级类别..

所以数据在“URL”表示中,例如.. /entradas/delicias-de-delhi/

"/delicias-de-delhi/" 是一种产品,来自许多类别的数千种产品之一。

我想用图表或表格形象化,顶级产品和那种员工,但他们的名字是这样的格式:Delicias de Delhi.

我想出了如何摆脱斜杠“/”和连字符“-”的方法,问题是我还想在每个单词的第一个字母中使用大写字母。我尝试使用 Upper() 函数,但它会转换大写字母中的所有内容。 DELICIAS DE DELHI,这不是我想要实现的。

我真的很感激一些帮助!

google-data-studio uppercase
2个回答
1
投票

Data Studio 不支持在正则表达式替换中使用

\U \1
转换为大写字母。

但是可以通过以下解决方法需要转义字符,这里是

*
来标记大写字母。

假设url在字段

URL_field
中,第一步是获取url的最后一部分。领域
dummy0

REGEXP_EXTRACT(dummmy, r"/([^/]*)/*$")

取第一个字母并将其放大。任何数量的空格或

-
都会转换为双空格。 然后对于每个长于两个字母的“单词”被分成
*w<ord
,因此
w
被标记为大写。为此创建了一个字段
dummmy1

REGEXP_REPLACE(
REGEXP_REPLACE(CONCAT(upper(left_text(dummy0,1)), 
REGEXP_REPLACE(substr(dummy0,2,999),r"[\s-]+","  "), 
" "), r"\s([a-z])(\w\w+)\s", r" *\1<\2 ")
, r"\s$", "")

下一步我们可以为字母表中的每个字母做

replace(...,"*a<,"A")
;然而,这会过于嵌套,而 Data Studio 不允许这样做。因此,需要另一种方法。四个内部
regexp_replace
在每个标记字符
*w<
周围添加整个大写字母。此外,标记的字符直接在其大写字母之前。 因此,
*w<ord
被转换为
*ABC...UVwWXYZord
。然后将其替换为
***wWXYZord
。这被转化为
Word
.

regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(
dummy1
,r"\*(a{0,1})(b{0,1})(c{0,1})(d{0,1})(e{0,1})(f{0,1})(g{0,1})(h{0,1})([i-z]{0,1}\<)",r"*\1A\2B\3C\4D\5E\6F\7G\8H*\9")
,r"H\*(i{0,1})(j{0,1})(k{0,1})(l{0,1})(m{0,1})(n{0,1})(o{0,1})(p{0,1})([q-z]{0,1}\<)",r"\1I\2J\3K\4L\5M\6N\7O\8P*\9")
,r"P\*(q{0,1})(r{0,1})(s{0,1})(t{0,1})(u{0,1})(v{0,1})(w{0,1})(x{0,1})([y-z]{0,1}\<)",r"P\1Q\2R\3S\4T\5U\6V\7W\8X*\9")
,r"X\*(y{0,1})(z{0,1})\<",r"X\1Y\2Z")
,r"\*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*",r"***") 
,r"\*\*\*.(.)A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*",r"\1")

0
投票

CONCAT(UPPER(LEFT_TEXT(dummy,1)),SUBSTR(dummy,2,20))

© www.soinside.com 2019 - 2024. All rights reserved.