Postgresql
如何在兩個位置之間提取子字元串
我在表格(通知)中有一個文本列( emailbody ),它記錄了針對特定電子郵件發出的 HTML。在該 HTML 文件的某處,有一行文本包含以下行:
Delayed ${shipmentId} for Carrier
其中
${shipmentId}
表示為該特定記錄生成的特定 ID。範例:12345基本上我想在表中的列中查詢所有的 shippingId 值,不幸的是這將涉及獲取 和 之間的字元串
Delayed
位置for Carrier
。我知道這可能會涉及使用 Postgres 的正則表達式函式之一,但我不太確定該怎麼做,或者是否有一些更簡單的東西。
該
SUBSTRING
函式具有正則表達式支持,因此以下將起作用:SELECT SUBSTRING(emailbody FROM 'Delayed (.*?) for Carrier') FROM notification
所謂擷取組
()
,就是確保只擷取到貨件ID,而不是整個字元串“Delayed 12345 for Carrier”。使?
擷取非貪婪,以確保匹配第一個’for Carrier’。