2014-02-25 34 views
0

我有這樣有人能解釋這個REGEXP_SUBSTR正在做(甲骨文)

"{1:kkkkkkkkkkkkkkkkkkkkkk}{2:kkkkkkkkkkkkkkkkkkkkkk}{4: 
:20:M000000043319452 
:25:kkkkkkkkkkkkkkkkkkkkkkUR 
:28C:00037/00012 
:60M:FGHYYGGGG,52 
:61:1402210221CR180,ABCDEFGHIJK//25-15974720-2} 

迅速的消息,所以我用以下,從28C標記提取值00012。但我無法理解它是如何工作的。請幫助瞭解詳情

regexp_substr(msgswi, ':28C:.*?/(\S*)', 1, 1, '', 1) 

回答

7

分解模式。這很簡單。

  • :28C:恰好與這四個字符匹配。
  • .*?匹配零個或多個字符(任何字符),非貪婪。
  • /恰好匹配一個正斜槓字符。
  • (\S*)匹配並捕獲零個或多個非空白字符。

因此,在這種情況下,你已經得到了輸入和模式之間的匹配如下:.*?

  • /比賽/
  • 00012

    • :28C:比賽:28C:
    • 00037比賽匹配\S*
  • +0

    +1對於很酷的解釋! –

    +0

    非常感謝馬特..現在明顯不足:) – user2647888