regex - 如何提取短语(xvth)后的数字并将短语替换为“Group-”?
问题描述
我有数据从 BigQuery 导出到 Google Data Studio 一个字段包含如下用户名。
- xvth20-00-tt-wr
- xvth27-00-pt-px
前 4 个字符 ( xvth
) 始终相同,后面的数字 ( xvth
) 对应一个组。多个用户名将在这些字符之后包含相同的数字,但从后面开始的字符串的其余部分00-
将不同。我要做的是提取 4 个字符后面的数字并创建一个如下所示的新字段。
- 20 组
- 27 组
我已经尝试了以下REPLACE(SUBSTR(Users,1, 6), 'xvth20', 'Group-20')
方法,我将不得不为每个看起来太多的条件创建一个。此外,数据将继续增长,所以我不想继续添加另一个功能。有没有更简单的方法来做到这一点?
解决方案
以下任一计算字段都将替换为,紧随其后的是各自捕获的数字;计算字段 #1使用Raw Literal,由需要单个转义特殊 RegEx 字符的字母表示,而计算字段 #2需要转义 Google Data Studio RegEx,因为它不使用 Raw Literal:REGEXP_REPLACE
xvth
Group-
r
\
\\
1) 使用r
(原始文字)
REGEXP_REPLACE(Users, r"^xvth(\d+).*", r"Group-\1")
2)没有r
(原始文字)
REGEXP_REPLACE(Users, "^xvth(\\d+).*", "Group-\\1")
可编辑的谷歌数据工作室报告(嵌入式谷歌表格数据源)和一个 GIF 来详细说明:
推荐阅读
- android - AdMob 插页式广告未加载
- watchos - 如何通过在 watchOS 并发症中发起调用从 iOS 应用程序中提取数据?
- php - 当两个用户在同一条记录上工作时如何限制数据库修改-groceryCRUD
- ssh - 对特定 LDAP 组的 SSH 访问
- python - 通过 github.api 获取问题数量
- java - 将 jenkins 与 github 中的公共 repo 集成的问题
- postgresql - Postgres 更快的 autovacuum
- selenium - Robot Framework for loop - 选择器总是返回相同的元素
- c++ - OpenCV 3 中的神经网络权重
- linux - Linux Debian 9 守护进程标准输入 (bash)