iT邦幫忙

0

正則取第一個符合的條件

  • 分享至 

  • xImage

想用oracle匹配第一個符合的條件,但都是匹配到全部的字:
ex:

SELECT  REGEXP_REPLACE('caaaandy','{1,2}a','b')    FROM DUAL 

result:cbbbbndy
想要的結果為:cbaaandy
請問{m,n} 限定符應該怎麼設定才能達到想要的結果?
感謝各位大大提供意見~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
iT邦新手 4 級 ‧ 2022-10-11 11:48:41
最佳解答

https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions130.htm

根據官方網頁的教學,你需要的是指定occurrence1
也就是SELECT REGEXP_REPLACE('caaaandy','a','b',1,1) FROM DUAL
第一個數字1代表position,也就是從caaaandy的第一個字元開始尋找a
第二個數字1代表occurrence,也就是只取代第一個被搜尋到的a,若設定成2,就會只取代第二個被搜尋到的a

qpalzm iT邦新手 1 級 ‧ 2022-10-11 11:56:04 檢舉

謝謝~
/images/emoticon/emoticon41.gif

qpalzm iT邦新手 1 級 ‧ 2022-10-11 12:01:30 檢舉

不好意思 想在請問一下 REGEXP_SUBSTR只取第一個條件也是相同的概念嗎 謝謝~

iT邦新手 4 級 ‧ 2022-10-18 21:52:13 檢舉

官方網頁是寫說occurrence預設值是一,代表第一個找到的子字串,若設則是要找第二個符合模式的子字串,兩個函式的occurrence主要就是預設值不一樣

我要發表回答

立即登入回答