[英]How to get value string with regexp in bigquery
嗨,我在 BigQuery 列中有這樣的字符串
cancellation_amount: 602000
after_cancellation_transaction_amount: 144500
refund_time: '2022-07-31T06:05:55.215203Z'
cancellation_amount: 144500
after_cancellation_transaction_amount: 0
refund_time: '2022-08-01T01:22:45.94919Z'
我已經使用這個邏輯來獲取cancellation_amount
regexp_extract(file,r'.*cancellation_amount:\s*([^\n\r]*)')
但 output 僅數量 602000,我需要 output 602000 和 144500 成為不同的列
感謝幫助
如果輸入中的行(最終將成為列)是固定的,則可以使用多個regexp_extract
來獲取所有值。
SELECT
regexp_extract(file,r'cancellation_amount:\s*([^\n\r]*)') as cancellation_amount
regexp_extract(file,r'. after_cancellation_transaction_amount:\s*([^\n\r]*)') as after_cancellation_transaction_amount
FROM table_name
我在您的正則表達式中發現的一個問題是.*cancellation_amount
與after_cancellation_transaction_amount
不匹配。
還有一個名為regexp_extract_all
的 function 將所有匹配項作為一個數組返回,您可以稍后將其分解為列,但如果您有有限值將它們分隔在不同的列中會更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.