テキストとデータの操作
SenseTalkは強力なテキスト処理能力を持っています。ここで説明するChunk Expressionsというチャンク表現は、テキスト文字列の特定の部分にアクセスし、操作するための強力で直感的な手段を提供します。また、テキストに関する情報を取得したり、テキストと他のデータ形式との間で変換したり、高レベルでテキストを操作したりするための多数のコマンドと関数があります。これらのアクションを実行するためのコマンドと関数については以下で詳しく説明します。
Capitalized 関数
動作: capitalized関数は、各単語の最初の文字が大文字になるテキストを返します。
構文:
{the} capitalized of stringFactor
capitalized( stringExpr )
例:
put capitalized of "now and then" -- shows "Now And Then"
Related:
CharToNum Function
動作: その引数の最初の文字を表す数値コード(Unicode)を返します。
構文:
{the} charToNum of textFactor
charToNum( textExpr )
例:
put charToNum("a") -- 97
Related:
Delete コマンド
動作: deleteコマンドは、コンテナ内のテキストチャンクまたはターゲットテキスト文字列の1回以上の出現を削除します。最もシンプルな形では、大文字小文字を問わずターゲットテキストのすべての出現を削除します。他の形式では、位置によるチャンクの指定、ターゲット文字列の出現回数や特定の出現を削除するための指示、正確な大文字小文字のマッチングの指定が可能です。
チャンクの削除
この形式のdeleteコマンドは、値の中から任意のテキストチャンク(文字、単語、行、テキストアイテム)を削除します。削除すべきコンテナの部分を記述するチャンク表現でチャンクを指定することができます。詳細はChunk Expressionsをご覧ください。
構文:
delete chunk [of | in] container
例:
set sentence to "In a hole in the ground there lived a hobbit."
delete words 2 to 4 of sentence
put sentence —> "In the ground there lived a hobbit."
例:
delete the first 2 characters of line 15 of output
例:
delete the first line of file manual
テキストまたはパターンの削除
この形式のdeleteコマンドは、文字列内からターゲットテキスト値またはパターン(Pattern Language参照)を削除します。この形式のdeleteには、ターゲットの出現回数を指定する、あるいは特定の出現を削除するための指示をする、および正確な大文字小文字のマッチングを指定するといった多数のバリエーションが含まれます。
_targetTextOrPattern_を定義するオプションの中からひとつだけが必要で、削除が行われるコンテナも必要です。大文字小文字のオプションは任意です。使用されるオプションは任意の順序で指定することができます が、各種類のオプションは一つしか指定できません。
構文:
delete {Options}
オプション:
[in | within | from] コンテナ
{all {occurrences of} | every {occurrence of} } targetTextOrPattern
{the} [first | last] howMany {occurrences of} targetTextOrPattern
{the} ordinalTerm {occurrence of} targetTextOrPattern
occurrence 序数 of 対象テキストまたはパターン
[with | considering] case
[without | ignoring] case
例:
delete "#" from text —> これは"#"のすべての出現を削除します
例:
delete the last "s" in word 3 of sentence
例:
delete all <punctuation or whitespace> from phoneNumber
例:
delete every occurrence of "ugly" in manual
例:
put trim(" my words ")-- "my words" (二番目のパラメータがない場合、ソースの始まりと終わりの空白を削除)
振る舞い: excludeItems 関数は、list1 からの値すべてを含むリストを返し、その中には list2 にも存在しない値も含まれます。デフォルトでは、この関数は caseSensitive プロパティの現在の設定に従います。