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] |
値の属するクラス(text) | |
length | 整数[r/o] |
含まれる文字数(numberと同じ) | |
number | 整数[r/o] |
含まれる文字数(lengthと同じ) | |
quoted form | 文字列[r/o] |
文字列の前後をクォート「'」でくくったもの (Mac OS X 10.2以降) | |
id | 整数 | 整数リスト[r/o] |
文字コード(Mac OS X 10.5以降) | |
POSIX path | 文字列[r/o] |
/区切りのパス(Mac OS X10.1.2以降?) |
文字をダブルクォーテーションで括った値。
タブ文字など幾つかの特殊文字は変数として定義されており、エスケープ文字「\」との組み合わせでも書き表せる。
詳しくは、文字変数(text variables)を参照してほしい。
要素を指定して、文字列の一部を書き換えることは、残念ながらできず、つねに文字列全体を代入して書き換える必要がある。
例えばtext itemなどで一旦リストに分解して書き変え、文字列に再変換するという、少々面倒な手続きが必要になる。
textクラスはstringクラスの全くの同義語で、両方とも「文字列」を表す。自然な英語になるように使う以外の目的は無い。ちなみにtextの複数形もtextである。知らないとハマる時がある。
文字列を比較演算子や包含演算子で処理する場合、considering,ignoring構文で設定された特性が考慮される。
文字列の比較は、NFKC Casefoldという正規化規則に従って行われる。
そのため、"ぽいんと"と"ポイント"と"ポイント"と"㌽"は同じ内容と判断される。
要素については、各以下の通りの特徴がある。
characterは、文字一つ一つを表し、英字、日本語ともに一文字として取り出す。
itemはcharacterの同義語。
paragraphは、改行までの一行を表す(HyperTalkではline)
要素のtext(strings)は、文字列の中の一部を指定し取り出すことができる。例3,4を参照してほしい。
text itemはAppleScriptスクリプトオブジェクトの属性であるtext item delimitersによって区切られた文字列で、区切り文字を変えられることから、柔軟な文字列処理が行える。
wordは、スペースで区切られた文字列を表す、日本語の場合は漢字とひらがな・カタカナの間や句読点でも区切られる。
Mac OS X10.6以降は、もう少しそれっぽいところで日本語を区切ってくれる。
as演算子によって、項目が一つのリスト、整数、実数、日付へ変換できる。
整数、実数へ変換する場合は、文字列が数値だけで構成されている必要がある。
日付に変換できるのは、日付の書式を持った文字列である必要があり、足りない部分は補完される(ということだが、確実に変換されるわけでは無い)
quoted form属性は、AppleScript1.8.3(Mac OS X10.2)以降。
id属性は、AppleScript2.0(10.5)以降。
ユニコードとしての文字コードが整数で返る。文字が複数含まれる文字列の場合、整数のリストが返る。
逆に文字コードから文字を生成することもでき、この際も整数のリストが使用できる。用例を参照。
この変更で、ASCII characterおよびASCII number命令は不要となった。
文字コードx00の文字をASCII number命令やread命令を使って文字列に設定すると、高確率でフリーズやクラッシュを招くので要注意。
文字列をwords等を使ってリストに分割する場合、およそ4千をこえる数に分割するとスタック溢れ等のエラーで停止する。
MacOS9.1(だけかどうか正確には分からない)では、全要素指定をした場合、空リストが返る。
strings of "string"
--> {}
quoted formは、文字列に「'」が含まれるとおかしな変換をしてしまう。「'」をエスケープするために「¥¥'」とするのはいいのだが、その前後にも「'」がついてしまうのだ。
quoted form of "it's"
--> "'it'¥¥''s'"
Mac OS X 10.9.5ではquotedに関するバグは解消されていた。正確にどのバージョンで解消されたかは不明。
class of "text data"
every word of "text data"
text from character 4 to paragraph 1 of "text data"
strings 1 thru 3 of "鳶嶋工房"
"ポイント" is "㌽"
set codeNumber to id of "鳶"
string id codeNumber