公開日: 09/19/2023

文字関数

大部分の文字関数においては、引数は文字列であり、戻り値も引用符付き文字列です(一部、数値であるものもあります)。引数に文字列定数を指定する場合、その文字列は引用符で囲む必要があります。

一部の関数については、『スクリプトガイド』の文字関数の使用章で詳しく解説しています。

BLOB To Char(blob, <Encoding="enc">)

説明

指定のエンコーディングを使って、BLOBから引用符付きの文字列を作成する。

戻り値

引用符付き文字列

必須の引数

blob

(binary large object)

オプションの引数

encoding

エンコーディングを指定する引用符付き文字列。文字列のデフォルトのエンコーディングは"utf-8"です。また、"utf-16le""utf-16be""us-ascii""iso-8859-1""ascii~hex""shift-jis"、および"euc-jp"もサポートされています。

メモ

エンコーディングのオプションのうち、"ascii~hex"は、CR、LF、TABなどが含まれるBLOBデータを、特別な考慮をせずに、ASCII文字の文字列に単純に変換します。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

BLOB To Matrix(blob, type, bytes, endian, <nCols>)

説明

blobのバイトを数値に変換して行列を作成する。

戻り値

BLOBを数値に変換した行列

必須の引数

blob

BLOBまたはBLOBへの参照。

type

数値のデータ型を示す引用符付き文字列。"int""uint""float"のいずれか。

bytes

BLOB内のデータのサイズをバイトで示したもの。1248のいずれか。

endian

引用符付きのシステムのエンディアン: "Big"(上位から並べる)、"Little"(下位から並べる)、"Native"(コンピュータのネイティブ形式)。

オプションの引数

<nCols>

行列の列数。デフォルト値は1です。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Char(x, <width>, <decimal>, < <<Use Locale(Boolean)>)

説明

式または数値を引用符付き文字列に変換する。

戻り値

引用符付き文字列

必須の引数

x

式または数値。式はExpr()で囲む必要があります。囲まない場合、その評価結果が引用符付き文字列に変換されます。

オプションの引数

width

引用符付き文字列の最大文字数を設定する数値。

decimal

引用符付き文字列に含まれる、小数点以下の最大桁数を設定する数値。

Use Locale(Boolean)

ロケール固有の数値形式を維持するかどうかを指定する引数。

Char( Pi(), 10, 4)

"3.1416"

Char( Pi(), 3, 4)

"3.1"

メモ

引数widthが引数decimalより優先されます。

次も参照

『スクリプトガイド』の数および文字列

Char To BLOB(string, <encoding="enc">)

説明

引用符付き文字列を、バイナリデータ(BLOB)に変換する。

戻り値

BLOBオブジェクト

必須の引数

string

引用符付き文字列、または文字列変数。

オプションの引数

encoding

エンコーディングを指定する引用符付き文字列。blobのデフォルトのエンコーディングは"utf-8"です。また、"utf-16le""utf-16be""us-ascii""iso-8859-1""ascii~hex""shift-jis"、および"euc-jp"もサポートされています。

メモ

BLOBを印字可能な形式に変換する際、\(および~ " !と、ASCIIの印字不能な範囲の文字)は、16進数表記に変換されます(バックスラッシュの場合は、~5C)。

x = Char To BLOB( "abc\def\!n" );
y = BLOB To Char( x, encoding = "ASCII~HEX" );
If(
	y == "abc~5Cdef~0A", "JMP 12.2以降のバージョンの動作",
	y == "abc\def~0A", "JMP 12.2より前のバージョンの動作"
);

"JMP 12.2以降のバージョンの動作" // 出力

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Char To Hex(value, <integer|encoding="enc">)

Hex(value, <integer|encoding="enc"|Base(number)|Pad To(number)>)

説明

指定されたvalue(数値、引用符付き文字列、blob)とencodingに対応する16進数(または他の基数による値)のテキストを戻す。valueが数値の場合は、integerまたはBaseが指定されていない限り、IEEE 754の64ビット形式が使用されます。

必須の引数

value

任意の数値、引用符付き文字列、またはBLOB。

オプションの引数

integer

valueが数値の場合、浮動小数点ではなく整数としての16進数を戻す。

encoding

エンコーディングを指定する引用符付き文字列。デフォルトのエンコーディングは"utf-8"です。"utf-16le""utf-16be""us-ascii""iso-8859-1""ascii~hex""shift-jis""euc-jp"もサポートされています。

Base(number)

2~36の整数値。底が指定されている場合は、指定の数値が、16進数ではなくその底を使った数値に対応するテキストで戻されます。

Pad To(number)

16進数の出力の先頭にゼロを追加し、指定した桁数で戻す。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Collapse Whitespace(text)

説明

先頭および末尾の空白文字を削除し、文字列内で空白文字が連続している部分は重複を削除する。つまり、Collapse Whitespace関数で2つの連続したスペースを1つのスペースに置換できます。

戻り値

引用符付き文字列

必須の引数

text

引用符付き文字列。

Concat(a, b)

Concat(A, B)

a||b

A||B

説明

引用符付き文字列の場合: 文字列bを文字列aに追加する。どちらの引数も変更されません。

リストの場合: リストbをリストaに追加する。どちらの引数も変更されません。

行列の場合: 行列Aと行列Bを横に連結する。

戻り値

文字列の場合: 文字列aの後に文字列bを追加した引用符付き文字列

リストの場合: リストaの後にリストbを追加したリスト

行列の場合: 行列

引数

2つ以上の引用符付き文字列、引用符付き文字列変数、リスト、または行列。

a = "こんにちは"; b = " "; c = "世界"; a || b || c;

"こんにちは 世界"

d = {"りんご", "バナナ"}; e = {"桃", "梨"}; Concat( d, e );

{"りんご", "バナナ", "桃", "梨"}

A = [1 2 3]; B = [4 5 6]; Concat( A, B );

[1 2 3 4 5 6]

メモ

3つ以上の引数を取ることができます。追加の引用符付き文字列は、左から右の順番に文字列の最後に追加されます。行列の場合は、左から右の順番で、横に結合されていきます。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Concat Items

Concat Items({string1, string2, ...}, <delimiter>})を参照してください。

Concat To(a, b)

Concat To(a, b)

a||=b

A||=B

説明

引用符付き文字列の場合: 文字列aに文字列bを追加して、新しくできた連結文字列をaに代入する。

行列の場合: 行列aに行列bを追加して、新しくできた行列をaに代入する。

リストの場合: リストaにリストbを追加して、新しくできたリストをaに代入する。

戻り値

引用符付き文字列の場合: 文字列aの後に文字列bを追加した文字列

行列の場合: 行列

リストの場合: リストaの後にリストbを追加したリスト

引数

2つ以上の引用符付き文字列、引用符付き文字列変数、行列、またはリスト。第1引数には変数を指定しなければならない。

メモ

3つ以上の引数を取ることができます。追加の引用符付き文字列、行列、またはリストは、左から右の順番に文字列の最後に追加されます。

a = "こんにちは"; b = " "; c = "世界"; Concat To( a, b, c ); Show( a );

a = "こんにちは 世界";

A = [1 2 3]; B = [4 5 6]; Concat To( A, B ); Show( A );

A = [1 2 3 4 5 6];

d = {"りんご", "バナナ"}; e = {"桃", "梨"}; Concat to(d,e); Show( d );

d = {"りんご", "バナナ", "桃", "梨"};

次も参照

『スクリプトガイド』のリストの連結

Contains(whole, part, <start>)

説明

部分(part)が全体(whole)の中に含まれているかどうかを判断する。

戻り値

partが見つかったとき、リスト、引用符付き文字列、および名前空間の場合はpartが最初に見つかった位置の数値を戻し、連想配列の場合は1を戻す。

partが見つからないときは、すべてのケースで0が戻されます。

必須の引数

whole

引用符付き文字列、リスト、名前空間、または連想配列。

part

引用符付き文字列または名前空間の場合、文字列wholeの一部の文字列。リストの場合、リストwholeにある項目。連想配列の場合、マップwholeにあるキー。

オプションの引数

start

文字列whole内での検索開始位置を表す数値引数。全体(whole)の中。なお、startが負の場合、Containsは、wholeの長さからstartを差し引いた位置から、whole内のpartを逆方向に検索します。連想配列の場合、startは意味がなく、無視されます。

nameList={"Katie", "Louise", "Jane", "Jaclyn"};
r = Contains(nameList, "Katie");

この例では、項目"Katie"がリストの1番目にあるので、1が戻されます。

次も参照

『スクリプトガイド』のリスト内で項目を検索する

『スクリプトガイド』の連想配列内のキーまたは値の検出

Contains Item(x, <item | {list} | pattern>, <delimiter>)

説明

多重応答(複数回答)の文字列において、指定された項目、リスト、パターン、区切り文字を検索する。この関数は、多重応答の尺度または列プロパティを持つ列に対して使用できます。

戻り値

引数xのテキスト内にある単語のいずれかと、単語(item)、単語リスト(list)の中の1つ、またはパターン(pattern)がマッチするかどうかを、ブール値で戻す。テキスト内の単語は、オプションで指定された引用符付き区切り文字(delimiter)で区切られます。デフォルトの区切り文字はカンマです。なお、テキスト(x)から抽出された各単語の末尾にある空白は削除されます。

次の例では、“pots”およびそれに続くカンマを検索して、結果を出力します。

x = "Franklin Garden Supply is a leading online store featuring garden decor, statues, pots, shovels, benches, and much more.";
b = Contains Item( x, "pots", "," );
If( b,
	Write( "指定された項目が見つかりました。"  ), Write( "一致しません。" )
);

指定された項目が見つかりました。

Ends With(string, substring)

説明

文字列(string)の最後に引用符付きの部分文字列(substring)があるかどうかを判断する。

戻り値

引用符付き文字列(string)が引用符付き部分文字列(substring)で終わる場合は1、そうでない場合は0

必須の引数

string

引用符付き文字列、または引用符付き文字列変数。リストでも可。

substring

引用符付き文字列、または引用符付き文字列変数。リストでも可。

等価表現

Right(string, Length(substring)) == substring

Hex(value, <integer|encoding="enc"|Base(number)|Pad To(number)>)

Char To Hex(value, <integer|encoding="enc">)を参照してください。

Hex To BLOB(string)

説明

16進数の文字列(string)(空白を含む)から、BLOB(binary large object)を作成する。

Hex To BLOB( "4A4D50" );

Char To BLOB("JMP", "ascii~hex")

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Hex To Char(string, <encoding>)

説明

16進数の文字列(string)を、整数、もしくは、浮動小数点に変換します。

Hex To Char( "30" )の結果は“0”です。

メモ

引用符付き文字列のデフォルトのエンコーディングは"utf-8"です。"utf-16le""utf-16be""us-ascii""iso-8859-1""ascii~hex""shift-jis""euc-jp"もサポートされています。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Hex To Number(string, <Base(number)>)

説明

16進数(または他の数表現)のテキストに対応する数値を戻す。

必須の引数

string

引用符付きの16進数文字列。

オプションの引数

Base(number)

2~36の整数。baseが指定されている場合、テキストは、その基数による値を表す引用符付き文字列とみなされます。

Hex To Number( "80" );

128

メモ

入力値の16進数は、IEEE 754の64ビット形式の浮動小数点数として変換されます。それ以外の場合、入力値の16進数は、16進数の整数として、変換されます。

バイト間(つまり数字のペア)およびバイトの中央に空白文字が含まれていてもかまいません(例: "FF 1919""F F1919")。

Insert

Insert(source, item, <position>)を参照してください。

Insert Into

Insert Into(source, item, <position>)を参照してください。

Item(n|[first last], string, <delimiter>, <Unmatched(result string)>, <Include Boundary Delimiters(Boolean)>)

説明

引用符付き文字列delimitersに従って、引用符付きstringn番目の項目、またはfirstからlastまでの項目を戻す。複数の区切り文字を指定した場合、指定したすべての文字が区切り文字とみなされます。

必須の引数

n

抽出する単語の位置。

[first last]

抽出する単語の範囲の始めと終わりを指定する行列。

string

評価する引用符付き文字列。

オプションの引数

delimiter

区切りとして使用する文字。delimiterがない場合は、ASCII文字のスペースが区切り文字になります。delimiterを引用符付きの空白の文字列とした場合、1文字1文字がそれぞれ個別の項目とみなされます。

Unmatched(result string)

マッチするものがない場合に戻される引用符付き文字列。

Include Boundary Delimiters(Boolean)

文字列の前後の区切り文字をどのように扱うかを指定する。デフォルト値は0(偽)で、文字列の前後の区切り文字は無視されます。値が1(真)の場合、空白の要素が生成されます(文字列内に連続する区切り文字がある場合と同様)。

区切り文字が連続している場合、区切り文字の間に単語が挟まれているものとみなします。この例では、区切り文字としてカンマとスペースを使用しています。

Item( 4,"the  quick, brown fox", ", " ); // quickの前に2つのスペース

式は次のように処理されます。

the<delim[space]><word2><delim[space]>quick<delim[comma]><word 4><delim[space]>
brown<delim[space]>fox

Word4が空白であるため、式は空白の引用符付き文字列を戻します。

Item()は、区切り文字1つ1つが個別の区切り文字として使われる以外はWord()と同じ。Word()では、連続した複数の区切り文字が1つの区切り文字として扱われます。

Word( 4,"the  quick, brown fox", ", " ); // quickの前に2つのスペース

式は次のように処理されます。

the<delim[2 spaces]>quick<delim[comma + space]>brown<delim[space]>fox

式は、"fox"を戻します。

Left(string, n, <filler>)

Left({list}, n, <filler>)

説明

元の引用符付き文字列(string)から、左からn文字の文字列を取り出す。もしくは、元のリスト(list)から、最初のn個のリスト項目を取り出す。文字列(string)の長さがn個よりも短い場合は、fillerに指定された文字列が右側に補充されます。

Length(string)

説明

指定した引用符付き文字列の長さ(文字数)、リスト(項目数)、連想配列(キー数)、BLOB(バイト数)、行列(要素数)、名前空間(関数と変数の数)、クラス(メソッド、関数、変数の数)を戻す。

次も参照

『スクリプトガイド』の16進数の関数とBLOB関数

Lowercase(string)

説明

引用符付き文字列(string)内に現れる文字をすべて小文字に変換する。

Matrix to BLOB(matrix, type, bytesEach, endian(value))

説明

行列の要素を1バイト、2バイト、4バイトの符号付整数または符号なしの整数、4バイトまたは8バイトの浮動小数点数に変換することで、行列からBLOBを作成する。

必須の引数

matrix

行列。

type

引用符付きのBLOBの型: intuintfloat

bytesEach

int、uint、floatでのバイト数。整数(int)はそれぞれ1、2、または4バイト、浮動小数点(float)はそれぞれ4または8バイトになります。

endian(value)

引用符付きのシステムのエンディアン: "Big"(上位から並べる)、"Little"(下位から並べる)、"Native"(コンピュータのネイティブ形式)。

Munger(string, start position, find|length, <replacement string>)

説明

引用符付き文字列(string)に文字を挿入したり、削除したりして、新しい引用符付き文字列を作る。また、引数の指定方法により、文字列の一部を取り出す、また、ある文字列が何文字目に含まれているかを計算する、といった処理を実行できます。

必須の引数

start position

引用符付き文字列内での検索開始位置を指定する数式。なお、ある検索文字列において、その先頭位置よりstart positionが大きい場合、その検索文字列は検索に含まれません。
また、start positionがstringの長さより大きい場合、Munger()は、start positionを(stringの長さ+1)に設定します。

find|length

検索する文字列または文字数を指定する。

オプションの引数

replacement string

引用符付きの置換文字列。replacement stringを指定しなかった場合、start positionとposition+lengthの間にある部分文字列が戻されます。

次も参照

『スクリプトガイド』のMunger関数

Num(string)

説明

引用符付き文字列を数値に変換する。

次も参照

『スクリプトガイド』の数および文字列

Regex(source, pattern, (<replacement string>, <format, "GLOBALREPLACE", "IGNORECASE">>)

説明

引用符付きのsource文字列内で引用符付きpatternを検索する。

戻り値

一致するテキストを引用符文字列または数値で戻す。一致するテキストが見つからない場合は欠測値を戻します。

必須の引数

source

引用符付き文字列。

pattern

引用符付き正規表現。

replacement string

置換文字列。

オプションの引数

format

一致したグループへの前方参照。デフォルトは、一致した引用符付き文字列全体である\0\nn番目にマッチしたものを戻します。

"IGNORECASE"

"IGNORECASE"を指定しない場合、大文字と小文字が区別される。

"GLOBALREPLACE"

一致したものがすべて見つかるまで、引用符付きソース文字列(source)に正規表現を適用します。

次も参照

『スクリプトガイド』の正規表現

Remove

Remove(source, position, <n>)を参照してください。

Remove From

Remove From(source, position, <n>)を参照してください。

Repeat(source, a)

Repeat(matrix, a, b)

説明

sourceを、a回、繰り返して連結した結果を戻す。または、matrixをa回だけ縦に結合し、それをb回だけ横に結合した行列を戻します。sourceはテキスト、またはリスト、matrixは行列です。

次も参照

『スクリプトガイド』のRepeat関数

Reverse

Reverse(source)を参照してください。

Reverse Into

Reverse Into(source)を参照してください。

Right(string, n, <filler>)

Right({list}, n, <filler>)

説明

元の引用符付き文字列(string)から、右からn文字の文字列を取り出す。もしくは、元のリスト(list)から、最後のn個のリスト項目を取り出す。文字列(string)の長さがn個よりも短い場合は、オプションのfillerに指定された文字列が左側に補充されます。

Shift

Shift(source, <n>)を参照してください。

Shift Into

Shift Into(source, <n>)を参照してください。

Starts With(string, substring)

説明

引用符付きの文字列(string)の最初に引用符付きの部分文字列(substring)があるかどうかを判断する。

戻り値

文字列(string)が部分文字列(substring)で始まっていれば1、そうでなければ0

引数

string

引用符付き文字列または文字列変数。リストでも可。

substring

引用符付き文字列または文字列変数。リストでも可。

等価表現

Left(string, Length("substring")) = = "substring"

Substitute

Substitute(string, "substring", "replacementString", ...)を参照してください。

Substitute Into

Substitute Into(string, substring, replacementString, ...)を参照してください。

Substr(string, start, length)

説明

第2引数(start)で指定した位置から第3引数(length)で指定した文字数の文字を、第1引数(string)の文字列から抽出する。第1引数には、文字列を指定してください。開始位置と文字数の引数は、整数です。

この例では、ファーストネームを抽出します。

Substr( "Katie Layman", 1, 5 );

1文字目から5文字を読み取り、残りの文字を無視して「Katie」を戻します。

次も参照

『スクリプトガイド』の数および文字列

Text Score(text column, text-to-number, <weighting>, <{support vectors}>, <text explorer setup>)

説明

テキストエクスプローラのスコア計算式に使用される。この関数は、[同じ語幹の単語]オプションをサポートしていません。

戻り値

スコアのベクトルを戻す。

必須の引数

text column

データテーブルの列。

text-to-number

小文字の単語を数値にマッピングする連想配列。

オプションの引数

weighting

引用符付きの"Count""Binary""Ternary""LogCount""LCA"、またはTFLogIDFの文書度数の逆数の配列。デフォルト値は、"Count"です。デフォルト値は、"Count"です。

support vectors

テキストのスコアリングに使用されるベクトルのリスト。ベクトルの数と長さは、weighting引数に依存します。

text explorer setup

テキストエクスプローラの設定情報を含む式。

Titlecase(string)

説明

引用符付き文字列(string)をタイトルケースに変換する。つまり、文字列内の各単語の先頭を大文字にし、残りを小文字にします。

戻り値

引用符付き文字列

引数

string

引用符付き文字列。

次の関数は、名前の頭文字を大文字にします。

Titlecase( "veronica layman" )

"Veronica Layman"

Trim(string,<"Left"|"Right"|"Both">)

Trim Whitespace(string,<"Left"|"Right"|"Both">)

説明

指定の文字列から最初および最後のスペースを削除する。

戻り値

引用符付き文字列

必須の引数

string

引用符付き文字列。

オプションの引数

"Left"|"Right"|"Both"

文字列の左側、右側、または両側のいずれからスペースを削除するかを指定する引用符付き文字列。指定しなかった場合、両側から削除されます。

たとえば、次のコマンドは"John"を戻します。

Trim( "  John    ", Both )

"John"

Uppercase(string)

説明

引用符付き文字列(string)内に現れる小文字をすべて大文字に変換する。

Word(n|[first last], string, <delimiter>, <Unmatched(result string)>)

説明

文字列のn番目の項目を戻す。delimiter引数にある文字が区切り文字となり、任意の数の区切り文字で区切られた部分文字列が単語として扱われます。

必須の引数

n

抽出する単語の位置。

[first last]

抽出する単語の範囲の始めと終わりを指定する行列。

string

評価する引用符付き文字列。

オプションの引数

delimiter

区切りとして使用する文字。delimiterがない場合は、ASCII文字のスペースが区切り文字になります。delimiterを空白の引用符付き文字列とした場合、1文字1文字がそれぞれ個別の項目とみなされます。

Unmatched(result string)

マッチするものがない場合に戻される引用符付き文字列。

この例では、ラストネームを戻します。

Word( 2, "Katie Layman" );

"Layman"

次も参照

Word()Item()の違いを示す例については、Item(n|[first last], string, <delimiter>, <Unmatched(result string)>, <Include Boundary Delimiters(Boolean)>)を参照してください。

Words

Words(string, <delimiter>)を参照してください。

XPath Query(xml, xpath_expression)

説明

XMLドキュメントに対して、XPath式を実行する。

戻り値

リスト

必須の引数

xml

有効なXMLドキュメント。

xpath_expression

引用符付きXPath 1.0式。

JMPで検定結果のレポートを作成し、重要な詳細をXMLドキュメントに書き出したとしましょう。
検定の結果は<result>タグに挟まれています。

次の式は、そのXMLドキュメントを変数内に保存します。XPath Query式は、XMLを解析して<result>に挟まれたテキストノードを見つけます。結果はリストで戻されます。

rpt =
"\[<?xml version="1.0" encoding="utf-8"?>
<JMP><report><title>Production Report</title>
<result>November 21st: Pass</result>
<result>November 22nd: Fail</result>
<note>Tests ran at 3:00 a.m.</note></report>
</JMP> ]\";
results = XPath Query( rpt, "//result/text()" );

{"November 21st: Pass", "November 22nd: Fail"}

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).