created: 2022-06-11T14:26:57.346Z
Presto へのクエリに正規表現を使う
6.11. Regular Expression Functions — Presto 0.177 Documentation
regexp_extract(string:string, pattern:regexp, group:int)
- \d, \w といった正規表現がつかえる (Java 互換らしい)
- 括弧でマッチグループを複数つくって、group で指定した部分だけ抜き出したり出来る
- 3 つ目の引数で、何個目のキャプチャを抜き出すか指定する
練習
1 つめのキャプチャを取得した場合。
select regexp_extract(
'ID:RECOMMEND:123:456',
'^ID:(\w+):(\d+):(\d+)',
1
)
RECOMMEND
select regexp_extract(
'ID:RECOMMEND:123:456',
'^ID:(\w+):(\d+):(\d+)',
3
)
456
select regexp_extract(
'ID:RECOMMEND:123:456',
'^ID:(\w+):(\d+):(\d+)',
0
)
ID:RECOMMEND:123:456
DB にクエリする前に自分でつくったテスト文字列で試せるの便利。