SenseTalkでパターンを使用する
SenseTalkパターン言語は、SenseTalkの自然言語構文でソーステキスト内のパターンを検索することができます。パターン言語の一般的な説明については、SenseTalkパターン言語の基礎を参照してください。パターンを定義する方法に関する完全な情報については、SenseTalkパターン言語の要素を参照してください。
以下に、SenseTalkスクリプトでパターンを使用する方法についての情報が記載されています。
パターンマッチングのためのオペレータ、コマンド、および関数
パターンは、大きな文字列内の特定のテキストの存在または位置を探すすべてのSenseTalkオペレータ、およびテキストを操作するコマンドや関数に対応しています。
set ssn to <3 digits then dash then 2 digits then dash then 4 digits>
put every offset of ssn in textblock into ssnList // Finds the offset (first character position) of all occurrences of ssn pattern match in textblock and places those positions into the ssnList list
以下のオペレータ、コマンド、および関数をパターン言語で使用できます。
containsoperatoris inoperatorbegins withoperatorends withoperatoroffset,range,every offset,every rangefunctionsreplacecommanddeletecommandsplitcommand,split byfunctionnumber of occurrences offunction
さらに、パターンの使用に特化したオペレータと関数もあります。
Matchesオペレータ
matchesオペレータを使用して、変数または式がパターンと完全に一致するかどうかをテストします。オペランドの一つはパターンであり、もう一つは文字列値として扱われます。このオペレータは、パターンが文字列全体と完全に一致する場合にtrueを返します。パタンが文字列の一部のみ、または全く一致しない場合、matchesオペレータの結果はfalseとなります。
例:
put 83 matches <digit,digit> --> True
put <"x", 3 chars, "y"> matches "xyzzy" --> True
パターンが全体の値と一致する可能性がある場合、matchesオペレータはtrueを返します。たとえ、通常のパターンのマッチが全体の文字列を返さない場合でも(使用中の遅延量詞による):
put <"$", digits> matches "$895" --> True
put the occurrence of <"$", digits> in "$895" --> "$8"
遅延と貪欲なマッチおよび量詞についての情報は、**SenseTalkパターン言語の要素**を参照してください。