Top/マニュアル/関数/TRANSLATE
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 ]

#navi(マニュアル/関数)

* TRANSLATE [#o2a21bdd]

** 形式 [#x6c7d2bb]

> TRANSLATE( '''text''' , '''format_from''' , '''format_to''' )

** 機能 [#t613ae50]

- 文字列の 1文字対1文字 の高速置換を行います。
- Perlのオプションなしtr///相当の機能です。

** 引数 [#z820e459]

:text|置換対象文字列。
:format_from|置き換え前文字リスト。書式について参照。
:format_to|置き換え後文字リスト。書式について参照。空文字列にすると削除。

***書式について [#o6c4be9a]

-単純に文字を列挙すると、1対1で置き換えます。置き換え前リストに含まれない文字はそのまま無視されます。
--TRANSLATE('ぬるぽガッ','ぽガ','りゴ') -> ぬるりゴッ
--TRANSLATE('あああいいいううう','あい','おえ') -> おおおえええううう
-間に "-" を挟むと、指定した文字コード範囲で一括置換処理をします。
--TRANSLATE('123456789','1-9','①-⑨') -> ①②③④⑤⑥⑦⑧⑨
--使用する文字コードはUCS-2(Unicode)なので、IMEの文字パレットをUnicodeモードに切り替えて確認してみてください。
-"-"自体を書きたい場合は、"\-"と書いてください。また、"\"自体を書きたい場合は、"\\"と書いてください。
--TRANSLATE('\-\-\-','\\','\-') -> ------
-第3引数を空文字列にすると削除操作になります。
--TRANSLATE('46cm三連装砲','0-9a-z','') -> 三連装砲

** 返り値 [#mc699826]

- 成功した場合、置換後の文字列
- 失敗した場合、-1。

** 関連 [#u829558c]

- [[マニュアル/関数/HAN2ZEN]]
- [[マニュアル/関数/ZEN2HAN]]

** バージョン [#gcb86e8c]

- Tc546-1
-- Tc546-2でエスケープシーケンス追加
-- Tc547-1で削除処理追加

** 例 [#jff150d1]

以下のスクリプトを書くと、ひらがなをカタカナ、カタカナをひらがなに変換できます。

 _wokyu = TRANSLATE('ティータイムは大事にしないとネー','ぁ-ゖァ-ヶ','ァ-ヶぁ-ゖ')
 
 //_wokyu の中身 = てぃーたいむハ大事ニシナイトねー
 //Unicode表でカタカナとひらがなの重なる範囲「ァ-ヶ」を指定しています
 //Shift JISで辞書を書いている場合、「ゖ」は化けるので、とりあえず以下のように。
 
 _wokyu = TRANSLATE('ティータイムは大事にしないとネー','ぁ-んァ-ン','ァ-ンぁ-ん')

#navi(マニュアル/関数)