【问题标题】:First Capital Letter of each word每个单词的第一个大写字母
【发布时间】:2021-08-18 20:54:36
【问题描述】:

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

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

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

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

我想以图表或表格的形式可视化顶级产品和这类员工,但他们的名字采用以下格式:Delicias de Delhi。

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

非常感谢您的帮助!

【问题讨论】:

  • 我很确定 Data Studio 不支持此功能。通常正则表达式替换是这样做的方法,但在github.com/google/re2/wiki/Syntax 它说它“不支持”与文本的大写/小写相关的各种操作。
  • @GavinHaynes 有一个丑陋的解决方法来完成所有单词大写的任务。

标签: google-data-studio uppercase


【解决方案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&lt;,"A");但是这会过于嵌套,Data Studio 不允许这样做。因此,需要另一种方法。四个内部regexp_replace 在每个标记的字符*w&lt; 周围添加整个大写字母。此外,标记的字符直接位于其大写字母之前。 因此*w&lt;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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2014-04-11
    • 2018-07-09
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多