文字列の操作
はじめに
AppleScriptは、macOSでの自動化やアプリケーション操作を簡単に実現するスクリプト言語です。プログラムを書く際に、文字列を操作することは非常に重要です。この記事では、AppleScriptで使用される基本的な文字列の操作方法について詳しく解説します。文字列の結合や分割、検索、置換などの操作を理解することで、より柔軟なスクリプトを作成できるようになります。
文字列の基本操作
文字列の結合
AppleScriptでは、&
演算子を使用して文字列を結合することができます。
文字列の結合例
set firstName to "John"
set lastName to "Doe"
set fullName to firstName & " " & lastName
display dialog "Full Name: " & fullName
スクリプトの説明
set firstName to "John"
:firstName
という変数に文字列「John」を代入します。set lastName to "Doe"
:lastName
という変数に文字列「Doe」を代入します。set fullName to firstName & " " & lastName
:firstName
とlastName
をスペースで結合し、fullName
に代入します。display dialog "Full Name: " & fullName
: 結合された文字列をダイアログボックスで表示します。
文字列の長さを取得
AppleScriptでは、length of
キーワードを使用して文字列の長さを取得することができます。
文字列の長さの例
set sampleText to "Hello, world!"
set textLength to length of sampleText
display dialog "The length of the text is: " & textLength
スクリプトの説明
set sampleText to "Hello, world!"
:sampleText
という変数に文字列「Hello, world!」を代入します。set textLength to length of sampleText
:sampleText
の文字数を取得し、textLength
に代入します。display dialog "The length of the text is: " & textLength
: 文字列の長さをダイアログボックスで表示します。
文字列の分割
文字列を特定の文字で分割してリストとして扱うことができます。AppleScriptには文字列分割のビルトイン関数はありませんが、text item delimiters
を利用することで可能です。
文字列の分割例
set sampleText to "Apple,Banana,Cherry"
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to ","
set fruitList to text items of sampleText
set AppleScript's text item delimiters to oldDelimiters
display dialog "Fruits: " & item 1 of fruitList & ", " & item 2 of fruitList & ", " & item 3 of fruitList
スクリプトの説明
set sampleText to "Apple,Banana,Cherry"
:sampleText
という変数に文字列を代入します。set oldDelimiters to AppleScript's text item delimiters
: 現在のデリミタをoldDelimiters
に保存します。set AppleScript's text item delimiters to ","
: 文字列を分割するデリミタをカンマ(,
)に設定します。set fruitList to text items of sampleText
:sampleText
をカンマで分割し、fruitList
にリストとして代入します。set AppleScript's text item delimiters to oldDelimiters
: デリミタを元の設定に戻します。display dialog ...
: 分割された各要素をダイアログボックスで表示します。
文字列の検索と置換
文字列の検索
文字列の中から特定の部分文字列を検索するために、offset of
を使用します。
文字列の検索例
set sampleText to "Hello, world!"
set searchText to "world"
set position to offset of searchText in sampleText
if position is not 0 then
display dialog "\"" & searchText & "\" found at position: " & position
else
display dialog "\"" & searchText & "\" not found."
end if
スクリプトの説明
set sampleText to "Hello, world!"
:sampleText
という変数に文字列「Hello, world!」を代入します。set searchText to "world"
: 検索したい文字列をsearchText
に代入します。set position to offset of searchText in sampleText
:searchText
がsampleText
内で初めて出現する位置をposition
に代入します。if position is not 0 then ... end if
:position
が0でない場合、検索文字列が見つかったことを表示します。0の場合、見つからなかったことを表示します。
文字列の置換
文字列内の特定の部分を別の文字列に置換するためには、text item delimiters
を利用して置換操作を行います。
文字列の置換例
set sampleText to "I love apples. Apples are great!"
set searchText to "apples"
set replaceText to "bananas"
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to searchText
set textItems to text items of sampleText
set AppleScript's text item delimiters to replaceText
set newText to textItems as string
set AppleScript's text item delimiters to oldDelimiters
display dialog "Original: " & sampleText & return & "Modified: " & newText
スクリプトの説明
set sampleText to "I love apples. Apples are great!"
:sampleText
という変数に文字列を代入します。set searchText to "apples"
: 検索対象の文字列をsearchText
に代入します。set replaceText to "bananas"
: 置換する文字列をreplaceText
に代入します。set oldDelimiters to AppleScript's text item delimiters
: 現在のデリミタを保存します。set AppleScript's text item delimiters to searchText
: デリミタをsearchText
に設定します。set textItems to text items of sampleText
:sampleText
をsearchText
で分割し、textItems
にリストとして代入します。set AppleScript's text item delimiters to replaceText
: デリミタをreplaceText
に設定します。set newText to textItems as string
: 分割したリストをreplaceText
で結合し、newText
に代入します。set AppleScript's text item delimiters to oldDelimiters
: デリミタを元の設定に戻します。display dialog ...
: 元の文字列と置換後の文字列をダイアログボックスで表示します。
大文字と小文字の変換
AppleScriptには、大文字と小文字を直接変換するビルトイン関数はありませんが、MacOSのdo shell script
コマンドを使用して実現することができます。
大文字変換の例
set sampleText to "Hello, world!"
set upperCaseText to do shell script "echo " & quoted form of sampleText & " | tr '[:lower:]' '[:upper:]'"
display dialog "Uppercase: " & upperCaseText
スクリプトの説明
set sampleText to "Hello, world!"
:sampleText
という変数に文字列を代入します。set upperCaseText to do shell script ...
: シェルスクリプトを使用して、sampleText
を大文字に変換し、upperCaseText
に代入します。display dialog "Uppercase: " & upperCaseText
: 大文字に変換された文字列をダイアログボックスで表示します。
まとめ
この記事では、AppleScriptにおける文字列の操作について詳しく解説しました。文字列の結合、分割、検索、置換、大文字変換といった基本的な操作をマスターすることで、より柔軟なスクリプトを作成することができます。次回の記事では、AppleScriptにおける条件分岐と繰り返し処理についてさらに詳しく解説しますので、お楽しみに!