文字列の操作

文字列の操作

はじめに

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: firstNamelastNameをスペースで結合し、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: searchTextsampleText内で初めて出現する位置を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: sampleTextsearchTextで分割し、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における条件分岐と繰り返し処理についてさらに詳しく解説しますので、お楽しみに!

上部へスクロール