oracleで正規表現を使用して文字列操作
regexp_substr、regexp_replaceなどを使って、カンマくぐりの文字列を
文字列の編集編集、部分文字列を取り出し、文字列の置換をしています。
要は、先頭、2番目、3番目、・・・・、最後と、そのカンマで区切られた
値をそれぞれ取り出したいのですが、どうしてもカンマが残ってしまいます。
以下、実際試したことです。
先頭
select regexp_substr('aaa,bbb,ccc,ddd','(^[^,]+)') from dual;
select regexp_substr(',aaa,bbb,ccc,ddd','(^,[^,]+)') from dual;
最後
select regexp_substr('aaa,bbb,ccc,ddd',',([^,]+)$') from dual;
select regexp_substr(',aaa,bbb,ccc,ddd',',([^,]+)$') from dual;
中間
select regexp_substr('aaa,bbb,ccc,ddd',',([^,]+)',1) from dual;
select regexp_substr('aaa,bbb,ccc,ddd',',([^,]+)',1,2) from dual;
select regexp_substr(',aaa,bbb,ccc,ddd',',([^,]+)',1,2) from dual;
select regexp_substr(',aaa,bbb,ccc,ddd',',([^,]+)',1,3) from dual;
良い方法ないでしょうか。
また、regexp_replaceでも実現したいです。
よろしくお願いします。
お礼
UNIONはこういう使い方をするのですね。 よく調べもせず質問をしたことを恥ずかしく思います。 有難うございました。