正規表現†

12 個の関数。

書式†

RE_SEARCH( string , regexp )

引数†

Parameter Description
string 検索対象の文字列
regexp 正規表現パターン

戻り値†

解説†

処理対象文字列内に正規表現とマッチする部分があるかどうかを調べます。文字列全体の完全マッチを調べる場合は RE_MATCH を使用してください。

マッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。

使用例†

if (RE_SEARCH(reference[0], 'こんに?ち[はわ]|今日[はわ]')){
  "こんにちは、%(username)"
}

ユーザー入力に「こんにちは」や「こんにちわ」等が含まれていればあいさつを返す例。\![open,inputbox,OnTalk,0] でインプットボックスを開いておくと、会話っぽいものを作れる。この例は、「こんにちは」「こんにちわ」「こんちは」「こんちわ」「今日は」「今日わ」「コンニチハ」「コンニチワ」のどれかが文中に入っているとき(たとえば「こんにちはー、ほにゃらら」など)に反応する('こんに?ち[はわ]|今日[はわ]|コンニチ[ハワ]' と書いた場合)。

Tips として、次のようにすると、文末に ? か ? があるとき(たとえば「元気?」「ハンガーって美味しいよね?」など)、常に「そうかもしれない」と返すので、会話が成立しやすい(返答パターンは増やすべきだが)。

if (RE_SEARCH(reference[0], '(?|\?)$')){
    "そうかもしれない"
}

互換性†

関連項目†


RE_MATCH†

書式†

RE_MATCH( string , regexp )

引数†

Parameter Description
string マッチ対象の文字列
regexp 正規表現パターン

戻り値†

解説†

処理対象文字列が正規表現に完全にマッチするかどうかを調べます。部分一致を調べる場合は RE_SEARCH を使用してください。

マッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。

使用例†

RE_MATCH("50kg", "(\d+) *kg")
// → 1

RE_MATCH("50cm", "(\d+) *kg")
// → 0

互換性†

関連項目†


RE_GREP†

書式†

RE_GREP( string , regexp )

引数†

Parameter Description
string 処理対象の文字列
regexp マッチさせる正規表現パターン

戻り値†

解説†

対象文字列の中から正規表現にマッチするすべての部分を検索します。詳細な結果は RE_GETSTR・RE_GETPOS・RE_GETLEN を使って取得できます。

互換性†

関連項目†


RE_REPLACE†

書式†

RE_REPLACE( string , regexp , replace [, count] )

引数†

Parameter Description
string 処理対象の文字列(数値型変数は TOSTR で文字列型に変換することを推奨)
regexp 正規表現パターン
replace 置換後の文字列(メタ文字は使用不可)
count 置換回数(省略またはマイナス値で全置換)

戻り値†

解説†

処理対象文字列内で正規表現にマッチした部分を置換します。置換文字列にメタ文字は利用できません。メタ文字を使用したい場合は RE_REPLACEEX を使用してください。

マッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。この関数を使った場合、それらは ( ) ごとの内容ではなく、対象文字列において正規表現全体にマッチしたn番目の内容を表します。

互換性†

関連項目†


RE_REPLACEEX†

書式†

RE_REPLACEEX( string , regexp , replace_ex [, count] )

引数†

Parameter Description
string 処理対象の文字列(数値型変数は TOSTR で文字列型に変換することを推奨)
regexp 正規表現パターン
replace_ex 置換後の文字列($0、$1 等のPerlスタイルメタ文字使用可能)
count 置換回数(省略またはマイナス値で全置換)

戻り値†

解説†

処理対象文字列内で正規表現にマッチした部分を置換します。RE_REPLACE との違いは、置換文字列に $0、$1 などのPerlスタイルのメタ文字が使用できる点です。

RE_REPLACEEX を使用した場合、RE_GETSTR、RE_GETPOS、RE_GETLEN は、nグループのキャプチャではなく、正規表現パターン全体のn番目のマッチに関する情報を返します。

互換性†

関連項目†


RE_SPLIT†

書式†

RE_SPLIT( string , regexp [, max] )

引数†

Parameter Description
string 分割対象の文字列
regexp 分割に使用する正規表現パターン
max 最大分割数(省略または0で全分割)

戻り値†

解説†

処理対象文字列を正規表現パターンで分割し、結果を汎用配列として返します。

max を指定した場合、その数で分割を打ち切り、残りの部分は最後の要素にまとめられます(RE_SPLIT('a,b,c,d', ',', 2) は a と b,c,d)。

分割結果の詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。

互換性†

関連項目†


RE_GETSTR†

書式†

RE_GETSTR
RE_GETSTR()

引数†

なし

戻り値†

マッチした部分文字列を格納した汎用配列。

要素 内容
要素0 正規表現全体にマッチした文字列
要素n n番目の括弧グループにマッチした部分文字列

解説†

正規表現系関数の実行結果を取得します。

使用例†

RE_MATCH("x > 15.7", "x *> *([\d\.]+)")
_array = RE_GETSTR
// _array は ("x > 15.7", "15.7") になる

互換性†

関連項目†


RE_GETPOS†

書式†

RE_GETPOS
RE_GETPOS()

引数†

なし

戻り値†

正規表現内の ( ) にマッチした位置を列挙した汎用配列。

要素 内容
要素0 正規表現パターン全体がマッチした位置
要素n n番目の括弧グループがマッチした位置

解説†

正規表現系関数の実行結果(マッチ位置情報)を取得します。

互換性†

関連項目†


RE_GETLEN†

書式†

RE_GETLEN
RE_GETLEN()

引数†

なし

戻り値†

正規表現内の ( ) にマッチした部分の長さを列挙した汎用配列。

要素 内容
要素0 正規表現全体にマッチした部分の長さ
要素n n番目の括弧グループにマッチした部分の長さ

解説†

正規表現系関数の実行結果を取得します。RE_GETPOS・RE_GETSTR と組み合わせて使用します。

互換性†

関連項目†


RE_ASEARCH†

書式†

RE_ASEARCH(key, array)

引数†

Parameter Description
key 検索する正規表現パターン
array 検索対象の汎用配列(簡易配列はサポートされない)

戻り値†

解説†

汎用配列から、指定した正規表現に「一部でも」合致する値を検索し、最初に見つかったもののみを返します。

注意: RE_GETSTR・RE_GETPOS・RE_GETLEN は使用不可です。すべてのマッチを取得したい場合は RE_ASEARCHEX を使用してください。

使用例†

_array = ('さくら','まゆら','ねここ')
RE_ASEARCH('^ま', _array) // Returns: 1
"ま"で始まる要素を検索し、インデックス1(2番目の要素)が見つかります。

互換性†

関連項目†


RE_ASEARCHEX†

書式†

RE_ASEARCHEX( key , array )

引数†

Parameter Description
key 検索する正規表現パターン
array 検索対象の汎用配列(簡易配列はサポートされない)

戻り値†

マッチした要素の序数を列挙した汎用配列(0始まり)。マッチする要素がない場合は空の配列を返す。

注意: RE_GETSTR・RE_GETPOS・RE_GETLEN は使用不可です。

解説†

汎用配列から、指定した正規表現に「一部でも」合致する値をすべて検索します。

使用例†

_tea = ("鉄観音", "烏龍", "やぶきた", "烏龍", "ジャスミン")
ipod = RE_ASEARCHEX("^烏", _tea)
// ipod は (1,3) になる("烏"で始まる要素のインデックス)

互換性†

関連項目†


RE_OPTION†

書式†

RE_OPTION( オプション文字列 )

引数†

Parameter Description
オプション文字列 設定する Perl 互換の正規表現オプション文字列(i, s, m, x)。省略した場合は現在の設定を返す

戻り値†

現在有効なオプションを示す文字列(i, s, m, x の組み合わせ)

解説†

Perl 互換の正規表現オプションを設定します。

対応オプション:

既定ではオプションなし(RE_OPTION("") でも同じ状態に戻る)。引数なしで呼ぶと、現在のオプションを文字列で返す。

オプションはパターンの中でも指定できる((?i)abc など)。詳しくは 正規表現 を参照。

互換性†

関連項目†