google-bigquery - 如何在 Bigquery 中使用 Regexp_extract 提取第二个括号内的单词?
问题描述
我在包含这些值的bigquery表中有一个textPayload列
文本有效载荷
# User@Host: root[root] @ [44.27.156.25] thread_id: 67301 server_id: 1220687984
我需要按以下方式将用户名和主机名提取为单独的字段:
用户:root主机:44.27.156.25,
该列的所有值都将包含上面发布的文本
我正在尝试这样Select Regexp_Extract(textPayload,
->无法获取正则表达式
我是 regexp_extract 的新手,我无法提取第二个单词host:44.27.156.25,
谁能帮助我通过 Regexp_extract 提取主机名?
解决方案
您可以使用User@
文本有效负载中的上下文,以及您想要方括号中的 IP 地址来查找您想要的内容:
SELECT
textPayload,
REGEXP_EXTRACT(textPayload, r"\bUser@.*?\[(.*?)\]") AS User,
REGEXP_EXTRACT(textPayload, r"\[(\d+\.\d+\.\d+\.\d+)\]"
FROM yourTable;
推荐阅读
- javascript - $(this).position 和 getBoundingClientRect() 之间的区别
- python - Python 3 - 在不调用 __getattr__ 的情况下检查类属性
- python - scikit-learn fit() 会修改原始数据吗?
- javascript - 如何将数据从 Vue 实例传递到单个文件组件
- c# - C# 将 ENTER 编程到文档中
- java - bean初始化失败;嵌套异常是 java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ')'
- react-native - 如何使用 expo react native 预加载视频
- android - 更正数据以以编程方式插入联系人
- android - 响应式文本和按钮上的图标
- mysql - 从 2 个表中选择获取行包括外键为空