我已經閱讀了所有的REGEXP_REPLACE文檔,但沒有找到任何我期待的內容。我想將兩個元音之間的特定字符替換爲另一個字母。SQL Oracle - 在兩個元音之間替換字符串
實施例:
字符串:abcdeZebca 輸出:abcdeSebca
字母Z被S代替,導致其是兩個元音之間。這在SLQ Oracle中可能嗎?
我已經閱讀了所有的REGEXP_REPLACE文檔,但沒有找到任何我期待的內容。我想將兩個元音之間的特定字符替換爲另一個字母。SQL Oracle - 在兩個元音之間替換字符串
實施例:
字符串:abcdeZebca 輸出:abcdeSebca
字母Z被S代替,導致其是兩個元音之間。這在SLQ Oracle中可能嗎?
我猜你沒趕上位有關雖然文檔反向引用:
SELECT
REGEXP_REPLACE(yourcolumn, '([aeiou])Z([aeiou])', '\1S\2')
FROM
yourtable
解釋:
[aeiou]同時匹配手段任何單個元音。將它括在括號中意味着「並記住你在一個編號插槽中發現了什麼,從1開始」在整個表達式中從左向右編號 - 每個(括號表達式)都有自己的編號
因此,完整表達方式: - 發現在插槽1 任何元音和商店 - 隨後由Z - 隨後在槽的任何元音和存儲2
替換字符串是: - S - - 的時隙1 內容的內容插槽2
因此
aZe -> aSe
eZi -> eSi
等等..
你應該用'.'替換'Z'以匹配2個元音之間的任何字符。 –
他說他想替換兩個元音之間的特定字符,而不是任何字符。我最初的想法是他想把americaniZed英文單詞改成angliciSed版本..如果你認出我的意思是:) –
當然我明白了.. –
清除泥漿。字符b(以及c和d)在兩個元音a和e之間。 (你不能不同意,對不起:** a ** bcd ** e ** ...; b,c和d在a和e之間)也許你是指兩個元音之間立即?那麼:「特定」(你可能是指「特定」或「指定」)字符從哪裏來?他們在桌子上嗎?他們是用戶輸入嗎?等等,他們應該換成什麼?一個例子並不構成問題規範。 – mathguy