コンテンツにスキップ

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引数を空文字列にする)を追加

関連項目