このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

MacOSX Applescript 文字列置換(教えて下さい)

発言者:kkondo
( Date Friday, August 24, 2001 11:22:26 )


はじめまして 近藤と申します。

MacOS-X における Apple script の中で、
文字列置換をおこないたいと思っています。
例えば、"abca" --> "fbcf" です。

現在、これを実現できる手法はあるでしょうか?
もし情報を御存じの方がいらっしゃれば、ご教示下さい。


田中求之 さんからのコメント
( Friday, August 24, 2001 12:58:33 )

text item delimiters を使った以下のようなハンドラーを使うのが定石でしょうね。

on replace {src, tg, rp}
  
  set oldDel to AppleScript's text item delimiters
  set AppleScript's text item delimiters to tg
  set myList to text items of src
  set AppleScript's text item delimiters to rp
  set myText to myList as string
  set AppleScript's text item delimiters to oldDel
  return myText
  
end replace


replace {"abcaabbbabcabb", "abca", "fbcf"}
---> "fbcfabbbfbcfbb"


他にも osax を使った方法とかありますが。

考え方は、text item delimiters を検索文字列にセットして、テキストを
リストに分解・その後、delimiters を置換文字列にセットしてから、リストを
テキストに戻す、というわけです

よしもと さんからのコメント
( Friday, August 24, 2001 17:56:34 )

>他にも osax を使った方法とかありますが。

AppleScriptに拘らなければ sed なんかを使えば良いでしょうね :-)

田中求之 さんからのコメント
( Friday, August 24, 2001 18:20:10 )

OS X の AppleScript の実装はあてにならないので、念のため 10.0.4 の方で
テストしてみましたが、先ほどのスクリプトで置換できます。

kkondo さんからのコメント
( Monday, August 27, 2001 12:28:40 )

近藤と申します。

どうもありがとうございました。さっそく、
ご教示いただいた text item delimiters を使って、うまくできました。

(MacOSX に付属の Applescript サンプルにも、
 これを使ったものがありました。)