TRANSLATE†
TRANSLATE( text , format_from , format_to )
- 文字列の 1文字対1文字 の高速置換を行います。
- Perlのオプションなしtr///相当の機能です。
- text
- 置換対象文字列。
- format_from
- 置き換え前文字リスト。書式について参照。
- format_to
- 置き換え後文字リスト。書式について参照。空文字列にすると削除。
書式について†
- 単純に文字を列挙すると、1対1で置き換えます。置き換え前リストに含まれない文字はそのまま無視されます。
- TRANSLATE('ぬるぽガッ','ぽガ','りゴ') -> ぬるりゴッ
- TRANSLATE('あああいいいううう','あい','おえ') -> おおおえええううう
- 間に "-" を挟むと、指定した文字コード範囲で一括置換処理をします。
- TRANSLATE('123456789','1-9','①-⑨') -> ①②③④⑤⑥⑦⑧⑨
- 使用する文字コードはUCS-2(Unicode)なので、IMEの文字パレットをUnicodeモードに切り替えて確認してみてください。
- "-"自体を書きたい場合は、"\-"と書いてください。また、"\"自体を書きたい場合は、"\\"と書いてください。
- TRANSLATE('\-\-\-','\\','\-') -> ------
- 第3引数を空文字列にすると削除操作になります。
- TRANSLATE('46cm三連装砲','0-9a-z','') -> 三連装砲
返り値†
- 成功した場合、置換後の文字列
- 失敗した場合、-1。
バージョン†
- Tc546-1
- Tc546-2でエスケープシーケンス追加
- Tc547-1で削除処理追加
以下のスクリプトを書くと、ひらがなをカタカナ、カタカナをひらがなに変換できます。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー','ぁ-ゖァ-ヶ','ァ-ヶぁ-ゖ')
//_wokyu の中身 = てぃーたいむハ大事ニシナイトねー
//Unicode表でカタカナとひらがなの重なる範囲「ァ-ヶ」を指定しています
//Shift JISで辞書を書いている場合、「ゖ」は化けるので、とりあえず以下のように。
_wokyu = TRANSLATE('ティータイムは大事にしないとネー','ぁ-んァ-ン','ァ-ンぁ-ん')