公開日: 04/01/2021

文字関数

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

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

BLOB To Char(blob, <encoding>)

説明

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

戻り値

文字列

引数

blob

(binary large object)

encoding

(オプション)エンコーディングを指定する引用符付き文字列。文字列のデフォルトのエンコーディングはutf-8です。また、utf-16leutf-16beus-asciiiso-8859-1ascii~hexshift-jiseuc-jpもサポートされています。

メモ

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

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です。

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

説明

式または数値を文字列に変換する。

戻り値

文字列

引数

x

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

width

(オプション)文字列の最大文字数を設定する数値。

decimal

(オプション)文字列に含まれる、小数点以下の最大桁数を設定する数値。

Use Locale(Boolean)

(オプション)ロケール固有の数値形式を維持する引数。

ノート

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

Char( Pi(), 10, 4)

"3.1416"

Char( Pi(), 3, 4)

"3.1"

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

説明

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

戻り値

BLOBオブジェクト

引数

string

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

encoding

(オプション)エンコーディングを指定する引用符付き文字列。blobのデフォルトのエンコーディングはutf-8です。また、utf-16leutf-16beus-asciiiso-8859-1ascii~hexshift-jiseuc-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以降のバージョンの動作" // 出力

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

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

説明

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

引数

value

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

integer

(オプション)valueが数値の場合、浮動小数点ではなく整数としての16進数を戻す。

encoding

(オプション)エンコーディングを指定する引用符付き文字列。デフォルトのエンコーディングはutf-8です。また、utf-16leutf-16beus-asciiiso-8859-1ascii~hexshift-jiseuc-jpもサポートされています。

base(number)

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

pad to(number)

(オプション)16進数の出力の末尾に追加する桁数を指定する。

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つ以上の文字列、文字列変数、リスト、または行列。

ノート

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

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]

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の中の初期値を表す数値引数。なお、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")

Hex To Char("string", <encoding>)

説明

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

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

メモ

文字列のデフォルトのエンコーディングはutf-8です。また、utf-16leutf-16beus-asciiiso-8859-1ascii~hexshift-jiseuc-jpもサポートされています。

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

説明

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

引数

string

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

base(number)

(オプション)2~36の整数値。baseが指定されている場合、テキストは、その底の数値を表す文字列とみなされます。

Hex To Number( "80" );

128

ノート

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

バイト間(つまり数字のペア)およびバイトの中央に空白文字が含まれていてもかまいません
(例:FF 1919F 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番目の項目、または最初の項目から最後の項目までの幅を戻す。4番目の引数を含めた場合、その引数で指定したすべての文字が区切り文字とみなされます。

引数

n

抽出する単語の位置。

[first last]

戻す単語の範囲の始めと終わりを定義する行列。

string

評価する文字列。

delimiter

(オプション)区切りとして使用する文字。delimiterがない場合は、ASCIIスペースが区切り文字になります。delimiterを空白とした場合、一つの文字が一つの単語とみなされます。delimiterを空白とした場合、一つの文字が一つの単語とみなされます。

Unmatched(result string)

マッチするものがない場合に出力する文字列。

Include Boundary Delimiters(Boolean)

(オプション)戻される文字列に区切り文字を含める。

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

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(バイト数)、行列(要素数)、名前空間(関数と変数の数)、クラス(メソッド、関数、変数の数)の長さを戻す。

Lowercase("string")

説明

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

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

説明

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

引数

matrix

行列

type

BLOBの種類: intuintfloat

bytesEach

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

endian

システムのエンディアン性: ビッグ(最初のバイトが最も重要な場合)、リトル(最初のバイトが最も重要でない場合)、ネイティブ(コンピュータのネイティブ形式)。

Munger("string", offset, find|length)

Munger("string", offset, find, replace)

説明

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

offsetは、string内での検索開始位置を示す整数です。なお、ある検索文字列において、その先頭位置よりoffsetが大きい場合、その検索文字列は検索に含まれません。また、offsetがstringの長さより大きい場合、offsetは、(stringの長さ+1)に設定されます。

Num("string")

説明

文字列を数値に変換する。

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

説明

ソース文字列(source)内でパターン(pattern)を検索する。

戻り値

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

引数

source

引用符付き文字列。

pattern

引用符付き正規表現。

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は行列です。

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

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

support vectors

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

text explorer setup

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

Titlecase("text")

説明

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

戻り値

引用符付き文字列。

引数

text

引用符付き文字列。

次のスクリプトを実行すると、

Titlecase( "veronica layman ")

下記の文字列が戻されます。

"Veronica Layman"

Trim("text",<left|right|both>)

Trim Whitespace("text",<left|right|both>)

説明

最初および最後のスペースを削除する。

戻り値

引用符付き文字列

引数

text

引用符付き文字列。

left|right|both

(オプション)第2引数は、空白文字を文字列の左側(left)、右側(right)、または両側(both)のどちらから削除するかを指定します。第2引数が指定されない場合、両側から空白文字が削除されます。

次のコマンドを見てみましょう。

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を空白とした場合、一つの文字が一つの単語とみなされます。delimiterを空白とした場合、一つの文字が一つの単語とみなされます。

Unmatched(result string)

マッチするものがない場合に出力する文字列。

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

Word( 2, "Katie 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).