星で囲まれた特定の単語を含む文字列が与えられた場合、たとえば
The *quick* *brown* fox jumped over the *lazy* dog
星で囲まれた単語を大文字に変換できますか?
QUICK BROWN キツネが LAZY 犬を飛び越えた
テーブル「文」の列「文」にテキストがある場合、次のように単語をマーク/抽出できます。
SELECT regexp_replace(sentence,'\*(.*?)\*','STARTUPPER\1ENDUPPER','g') FROM sentences;
しかし、大文字変換の最初の試みはうまくいきません:
select regexp_replace(sentence,'\*(.*?)\*','' || upper('\1'),'g') from sentences;
スターを開始マーカーと終了マーカーに置き換えた後、substring() を使用してパーツを分割することを考えましたが、スター付きの単語が複数あると失敗します。