as,
& (結合),
= (等しい),
/= (等しくない)
> (より大きい),
< (より小さい),
>= (以上),
<= (以下)
contain,
does not contain,
is in,
is not in
end with,
does not end with
start with,
does not start with
| character | 番号 | |
| item | 番号 | |
| paragraph | 番号 | |
| text | 全要素 | 範囲参照 |
| text item | 番号 | |
| word | 番号 |
| class | クラス識別子[r/o] |
| 値の属するクラス(当然string) | |
| length | 整数[r/o] |
| 含まれる文字数(numberと同じ) | |
| number | 整数[r/o] |
| 含まれる文字数(lengthと同じ) | |
| quoted form | 文字列[r/o] |
| 文字列の前後をクォート「'」でくくったもの(ver.10.2以降) | |
文字をダブルクォーテーションで括った値。
「¥」(英語フォントでは「\」)を使って、特殊な機能を持つ文字を表す。例として¥t,¥r,¥¥,¥"があり、分りやすくするためにAppleScriptには特種文字が代入された変数が定義されている。詳しくは文字変数(text variables)を参照してほしい。
要素を指定して、文字列の一部を書き換えることは、残念ながらできず、つねに文字列全体を代入して書き換える必要がある。どうしても一部を書き変えたい場合は、一旦リストに分解してから書き変えて、文字列に再変換するという、少々面倒な手続きが必要になる。
textクラスはstringクラスの全くの同義語で、両方とも「文字列」を表す。自然な英語になるように使う以外の目的は無い。ちなみにtextの複数形もtextである。知らないとハマる時がある。
文字列を比較演算子や包含演算子で処理する場合、considering,ignoring構文で設定された特性が考慮される。
要素については、各以下の通りの特徴がある。
characterは、文字一つ一つを表し、英字、日本語ともに一文字として取り出す。
itemはcharacterの同義語。
paragraphは、改行までの一行を表す(HyperTalkではline)
要素のtext(strings)は、文字列の中の一部を指定し取り出すことができる。例3,4を参照してほしい。
text itemはAppleScriptスクリプトオブジェクトの属性であるtext item delimitersによって区切られた文字列で、区切り文字を変えられることから、柔軟な文字列処理が行える。
wordは、スペースで区切られた文字列を表す、日本語の場合は漢字とひらがな・カタカナの間や句読点でも区切られる。
as演算子によって、項目が一つのリスト、整数、実数、日付へ変換できる。
整数、実数へ変換する場合は、文字列が数値だけで構成されている必要がある。
日付に変換できるのは、日付の書式を持った文字列である必要があり、足りない部分は補完される(ということだが、確実に変換されるわけでは無い)
quoted form属性は、AppleScript1.8.3から付いたもので、OSのバージョンとしては10.2以降と言うことになる。
【バグ情報】
文字コードx00の文字をASCII number命令やread命令を使って文字列に設定すると、高確率でフリーズやクラッシュを招くので要注意。
文字列をwords等を使ってリストに分割する場合、およそ4千をこえる数に分割するとスタック溢れ等のエラーで停止する。
MacOS9.1(だけかどうか正確には分からない)では、全要素指定をした場合、空リストが返る。
strings of "string"
--> {}
quoted formは、文字列に「'」が含まれるとおかしな変換をしてしまう。「'」をエスケープするために「¥¥'」とするのはいいのだが、その前後にも「'」がついてしまうのだ。
quoted form of "it's"
--> "'it'¥¥''s'"
class of "text data"every word of "text data"text from character 4 to paragraph 1 of "text data"strings 1 thru 3 of "鳶嶋工房"