最初だけやんけ!
例えば全ての「あ」を「ア」にしたいときに以下のように REGEXP_REPLACE()
を使ってみます。
SELECT REGEXP_REPLACE('あああいう','あ','ア'); -- → 「アああいう」
ところが、上記のように最初に見つけた文字しかリプレースしてくれません。REGEXP_REPLACE()
では全てを置き換えてくれないのでしょうか?
そんなことないです!
実は第四引数があり、ここに正規表現のオプションフラグが書けます。
SELECT REGEXP_REPLACE('あああいう','あ','ア','g'); -- → 「アアアいう」
この g
フラグは、正規表現で書けば以下の末尾の部分になり、あるだけ繰り返すという指定になります。
$str =~ s/あ/ア/g;