我想用'&'替換所有'空格',排除'| 'in regexp_replaceOracle Regexp_replace
例如:'create |刪除帳戶' - > expect輸出爲'create |刪除&帳戶'。
餘米與SQL
select regexp_replace('create | delete account','\s [^\s\|\s]',' & ') from dual
努力,但我爲在這裏做了什麼。任何人都可以請求幫助。
我想用'&'替換所有'空格',排除'| 'in regexp_replaceOracle Regexp_replace
例如:'create |刪除帳戶' - > expect輸出爲'create |刪除&帳戶'。
餘米與SQL
select regexp_replace('create | delete account','\s [^\s\|\s]',' & ') from dual
努力,但我爲在這裏做了什麼。任何人都可以請求幫助。
我想這是你想要的東西:
select regexp_replace('create | delete account', '([^\|]) ([^\|])', '\1 & \2')
from dual
這裏的邏輯是在兩個非管道字符之間發生空間時進行替換。我使用圓括號捕獲這些字符,然後通過\1
和\2
在替換中使用它們。
對於超過3個空格的情況,使用'([^ \ |])\ s +([^ \ |])''。 +1雖然。 – GurV
@GurwinderSingh感謝您的評論和讚揚:-) –
@ Tim Biegeleisen - 謝謝..它解決了..我喜歡你看到的要求(即)'替換兩個非管道字符之間的空間' –
如果你需要用字符串' & '
更換每一個空間,在你的出發字符串沒有'&'
,你可以避免正則表達式:
select replace (replace('create | delete account', ' ', ' & '), ' & | & ', ' | ') from dual
如果您有一系列空格,您是否需要用'&'替換每個空格?另外,您的起始字符串中是否有'&'字符? – Aleksej