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
以下のオペレータ、コマンド、および関数をパターン言語で使用できます。
contains
operatoris in
operatorbegins with
operatorends with
operatoroffset
,range
,every offset
,every range
functionsreplace
commanddelete
commandsplit
command,split by
functionnumber of occurrences of
function
さらに、パターンの使用に特化したオペレータと関数もあります。
Matches
オペレータ
matches
オペレータを使用して、変数または式がパターンと完全に一致するかどうかをテストします。オペランドの一つはパターンであり、もう一つは文字列値として扱われます。このオペレータは、パターンが文字列全体と完全に一致する場合にtrue
を返します。パタンが文字列の一部のみ、または全く一致しない場合、matches
オペレータの結果はfalse
となります。
例:
put 83 matches <digit,digit> --> True
put <"x", 3 chars, "y"> matches "xyzzy" --> True