TRANSLATE¶
Category: 文字列操作
書式¶
TRANSLATE( text, format_from, format_to )
引数¶
| Parameter | Description |
|---|---|
| text | 置換対象の文字列 |
| format_from | 置換前の文字リスト(書式あり、後述) |
| format_to | 置換後の文字リスト。空文字列を指定すると削除 |
戻り値¶
- 成功: 置換後の文字列
- 失敗: -1
解説¶
文字列を文字単位で高速に置換する。Perlのtr///(オプションなし)相当の機能を提供する。
書式¶
単純な列挙: 文字を1対1でマッピングする。リストにない文字は変更されない。
TRANSLATE('ぬるぽガッ', 'ぽガ', 'りゴ') // 'ぬるりゴッ'
範囲指定: 「-」を使って文字コードの範囲を指定して一括置換する。使用する文字コードは UCS-2(Unicode)なので、IME の文字パレットを Unicode モードに切り替えて確認するとよい。
TRANSLATE('123456789', '1-9', '①-⑨') // '①②③④⑤⑥⑦⑧⑨'
エスケープ: \- でリテラルのハイフン、\\ でリテラルのバックスラッシュを指定する。
TRANSLATE('\-\-\-', '\\', '\-') // '------'
削除: 第3引数を空文字列にすると、該当文字を削除する。
TRANSLATE('46cm三連装砲', '0-9a-z', '') // '三連装砲'
使用例¶
ひらがなをカタカナ、カタカナをひらがなに変換する。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー', 'ぁ-ゖァ-ヶ', 'ァ-ヶぁ-ゖ')
// _wokyu の中身 = てぃーたいむハ大事ニシナイトねー
Unicode 表でカタカナとひらがなが重なる範囲「ァ-ヶ」を指定している。辞書を Shift_JIS で書いている場合、「ゖ」が文字化けするので、その場合は次のように書く。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー', 'ぁ-んァ-ン', 'ァ-ンぁ-ん')
互換性¶
- YAYA: Tc546-1 以降
- Tc546-2: エスケープシーケンスを追加
- Tc547-1: 削除処理(第3引数を空文字列にする)を追加