我目前正在对行如何devide一个字符串,每个空格REGEXP_EXTRACT(SQL-雅典娜)
例如从我们webserverlog拆分消息: 我的消息(数据类型的字符串)看起来是这样的:
at=info method=GET path="/v1/..." host=web.com request_id=a3d71fa9-9501-4bfe-8462-54301a976d74 fwd="xxx.xx" dyno=web.1 connect=1ms service=167ms status=200 bytes=1114
,我想切到这些行:
path | service | connect | method | status | fwd | dyno |
------ | ------- | -------- | ------ | ------ | ------- | ------ |
/v1/...| 167 | 1 | GET | 200 | xxx.xxx | web.1 |
我与REGEXP_EXTRACT发挥各地函数(第一次)在标准SQL中的亚马逊雅典娜上,并且已经从字符串中得到了几行,但是我正在挣扎着几行。
当我尝试获得例如切到了极致出字符串即时得到比我需要
REGEXP_EXTRACT (message,'dyno=[^,]+[a-z]')AS dyno
-> dyno=web.2 connect=0ms service=192ms status=200 bytes
我想有dyno=web.1
结果&然后再提取
它会更多资讯如果我从开始(“dyno =”)将字符串剪切到“connect =”之前的空白处,但我无法在我读取的网站中找到正确的选项,那就好了。
我如何编写选项以获取正确的字符串?
你为什么用'[^,] +'在这里吗?从你的示例中,如果你的目标字符串不能包含空格或者'。*?(?= connect =)',我宁愿使用'\ S +'。 –
[^,] +在我之前制作的以前的行上工作过,所以我认为它可以在其他东西上工作 –
字符串中根本没有逗号,所以'[^,]'是毫无意义的。 –