目次
REPLACE命令(文字列置換)
内容
文字列の一部を他の文字列で置換するには、REPLACE命令を使用することができる。
使用頻度はそこまで高くない印象だが、禁則文字を置換する場合や、特定文字を変換したい処理を実装する場合に使う機会がある。
基本形
構文
REPLACE <置換前の文字> IN <変数> WITH <置換後の文字>.
サンプル
下記、サンプルの場合では文字列「AAAA」⇒「BAAA」に変換される。
1 2 3 4 5 6 7 8 9 10 11 |
CONSTANTS: CNS_A TYPE C VALUE 'A', CNS_B TYPE C VALUE 'B'. DATA: LV_TEXT TYPE STRING. LV_TEXT = 'AAAA'. * 'A'を'B' に置換 REPLACE CNS_A IN LV_TEXT WITH CNS_B. |
注意点
基本構文では先頭の1文字のみ置換される。
半角スペースはREPLACE、CONCATINATE命令の仕様で置換できないが、シングルコーテーションを’ ‘(半角スペース)⇒` `(半角スペース)にすることで対応可能。
(キーボード@の上の文字「‘」)
オプション:REPLACE ALL OCCURRENCES OF
オプションで使用頻度が高いのは、REPLACE ALL OCCURRENCES OF。
このオプションでは、先頭1文字だけでなく全ての対象文字の置換が可能。
構文
REPLACE ALL OCCURRENCES OF <置換前の文字> IN <変数> WITH <置換後の文字>.
サンプル
下記、サンプルの場合では文字列「AAAA」⇒「BBBB」に変換される。
1 2 3 4 5 6 7 8 9 10 11 |
CONSTANTS: CNS_A TYPE C VALUE 'A', CNS_B TYPE C VALUE 'B'. DATA: LV_TEXT TYPE STRING. LV_TEXT = 'AAAA'. * 'A'を'B' に置換 REPLACE ALL OCCURRENCES OF CNS_A IN LV_TEXT WITH CNS_B. |