簡體   English   中英

在 Hive SQL 中提取具有特定模式的 substring

[英]Extract substring with a specific pattern in Hive SQL

我有一列包含此示例數據。 我需要提取所有以“M6”開頭的 substring。 有沒有辦法用 regexp_extract 做到這一點?

數據欄
HEY01230328_M6K21SG_UNO_NYC_241
M6EW2BJ_UNO_NYC_251
M6HW2WL_UNO_NYC_251
HEY08460329_NA_M6LAB3D_UNO_NYC_241
所需 Output
M6K21SG
M6EW2BJ
M6HW2WL
M6LAB3D

嘗試使用:

SELECT colname FROM tableName WHERE REGEXP_EXTRACT(colname, ".*(M6[^_]*).*",1)

使用的正則表達式:

.*(M6[^_]*).*

正則表達式演示

解釋:

  • .* - 匹配 0+ 次出現的非換行符的任何字符
  • (M6[^_]*) - 匹配M6后跟 0+ 次出現的任何非_字符。 因此,在 M6 之后,它會繼續匹配所有內容,直到找到下一個_ 括號用於將這個子匹配存儲在第 1 組中
  • .* - 匹配 0+ 次出現的非換行符的任何字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM