喜正則表達式拆分我需要寫有以下邏輯正則表達式:在每第二個逗號在第二個逗號
拆分,除非該字符「\」是逗號之前。
也許一個例子,以明確:
1,1a,2,2a,3,3a\,b,4,4a
應該得到的結果是:
1,1A
2,2A
3,3A \,B
4,4a
這是我下面的代碼:
SELECT REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) TXT
FROM DUAL
CONNECT BY REGEXP_SUBSTR (text, '[^,]+,[^,]+', 1, LEVEL) IS NOT NULL;
所以我此刻正則表達式是:'[^,]+,[^,]+'
其分裂每隔一個逗號。
我只是跑你的查詢時,它看起來好像沒什麼問題..有什麼問題?爲什麼'3,3a \,b'需要3個逗號而不是2? – sagi
看起來\是oracle中的轉義字符。你需要改變你的字符串爲'1,1a,2,2a,3,3a \\,b,4,4a' – dinesh
@sagi因爲這也可以是像「Test \,Test2」這樣的文本。 \是逗號前的字符,這個逗號應該被忽略。 – ZerOne