2017-08-31 7 views
0

すでにすべてのREGEXP_REPLACEドキュメントを読みましたが、探しているものが見つかりませんでした。 2つの母音の間の特定のチャーターを別のチャーターに置き換えたい。SQL Oracle - 2つの母音間の文字列を置換します

例:

文字列:abcdeZebca 出力:abcdeSebca

ZがSで置き換えられた手紙は、その2つの母音の間であった原因。それはSLQ Oracleで可能ですか?

+2

。文字b(とcとd)は2つの母音aとeの間にあります。 (あなたは同意できません、ごめんなさい:** a ** bcd ** e ** ...; b、c、dはaとeの間です)おそらく、あなたは2つの母音の間を直ちに意味しますか?次に、「特定」(「特定」または「指定」のいずれかを意味する)文字はどこから来ますか?彼らはテーブルにいますか?彼らはユーザー入力ですか?などと置き換える必要がありますか? 1つの例は問題仕様を構成しない。 – mathguy

答えて

3

私はあなたががドキュメント内の後方参照について少しキャッチしていない推測している:

SELECT 
    REGEXP_REPLACE(yourcolumn, '([aeiou])Z([aeiou])', '\1S\2') 
FROM 
    yourtable 

を説明:

[AEIOU]手段は、任意の単一の母音と一致します。角カッコで囲んだことは、「1から始まる番号付きスロットに見つかったものを覚えている」とは、式全体を通して左から右に番号が振られていることを意味します。 : - 1 スロット内の任意の母音と店を見つける - Z 続く - 置換文字列であるスロット内の任意の母音と店舗2

続く: - スロット1 の内容 - S - コンテンツ スロット2の

したがって

aZe -> aSe 
eZi -> eSi 

そしてそう..に泥などをクリア

+0

'Z'を' .'で置き換えて、2つの母音の間の任意の文字にマッチさせるべきです。 –

+0

彼は、2つの母音の間の特定の文字を置き換えることを望みます。私が最初に考えたのは、americanZedの英語の単語をangliciSedのバージョンに変更したいということです。もしあなたが[z/s] eとわかっていれば: –

+0

確かに私はそれを得ます.. –

関連する問題