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

xReplace の動作について

発言者:重松修
( Date Thursday, May 15, 1997 21:37:16 )


お世話になっております。

set myMessage to "XXXXXX"
xReplace myMessage search "XX" replace "X"

を実行すると、"XXX"を返します。
私は、"X"を期待するのですが、置換した文字列に対しても再度置換をかける
事は出来ないのでしょうか?

set myMessage to "XXXXXX"
repeat while myMessage contains "XX"
  xReplace myMessage search "XX" replace "X"
end repeat

とするしかないでしょうか?

Tanaka's OSAXのバージョンは、1.1です。


前薗 健一 さんからのコメント
( Friday, May 16, 1997 00:17:15 )

これって正常な動作だと思うのですが...

重松修 さんからのコメント
( Friday, May 16, 1997 01:14:04 )

>これって正常な動作だと思うのですが...

そうですか。(^_^;;

例えば、スペースがだらだらと無駄に多い文章を整形するために、Jeditなど
でいつもスペース二つを一つに置換することでスペースを一つだけにしていた
のでそっちが正常かと思っていました。

現状repeatを使えば問題ないので、そうします。

田中求之 さんからのコメント
( Friday, May 16, 1997 12:47:42 )

>そうですか。(^_^;;

そうですよん。置換した結果にさらに置換を施すというのは、普通の置換処理では
行わないはずです( JEDT もそうなってますけど?)

たくさんの連続するスペースを処理する場合は、spacesToTab と xReplace を
組み合わせて使ってみてください。

spacesToTab は複数の連続するスペースを一つの tab に変換しますので、
この結果を xreplace で tab -> space 変換してやれば、お望みのことは
可能になるはずです。

重松修 さんからのコメント
( Friday, May 16, 1997 14:03:21 )

どうやら勘違いしていたようで、大変失礼いたしました。m(__)m

Tanaka's OSAXは本当に多機能ですね。あまりにも機能がありすぎて、
全く使いこなせていない上、とんちんかんな質問を行い恐縮しております。

ありがとうございました。