waitregex

【Tera Term マクロ言語】コマンドリファレンス

waitregex 機能

[通信コマンド]

正規表現文字列を含む行を待ちます。

コマンドライン

waitregex <string1 with regular expression> [<string2 with regular expression> ...]

機能説明

Oniguruma の正規表現が使用できます。

正規表現文字列のうち 1 つ以上を含む行(最大 511 文字)をホストから受信するか、タイムアウトが発生するまでマクロを停止します。
正規表現文字列は最大 10 個まで指定できます。

システム変数 timeout か mtimeout が 0 より大きい場合、<timeout>.<mtimeout> 秒の時間がすぎるとタイムアウトが発生します。
タイムアウトの値が 0 以下の場合は、タイムアウトは発生しません。

これらのコマンドの実行結果はシステム変数 <result> , <inputstr>, <matchstr> に格納されます。
システム変数格納対象
result受信しなかった、もしくは受信した列の番号が格納されます。
inputstr受信した行が格納されます。
matchstr最初にマッチしたパターンが格納されます。
groupmatchstr1
groupmatchstr9
グループマッチしたパターンが格納されます。
日本語等のマルチバイト文字列を待つ場合、事前に regexoption で適切なエンコーディングを設定しておく必要があります。

なお、<mtimeout> の精度は 50 msec 程度です。

パラメータの説明

指定するパラメータは以下の通りです。
パラメータパラメータ説明
<string1 with regular expression>文字列省略不可。正規表現で待機したい文字列を指定します。
<string2 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string3 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string4 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string5 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string6 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string7 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string8 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string9 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。
<string10 with regular expression>文字列省略可。正規表現で待機したい文字列を指定します。

対象バージョン

バージョン 4.21 以降で利用可能です。

戻り値

戻り値として以下の変数が定義されます。
変数名意味
result0タイムアウト。どの文字列も来ませんでした。
1<string1 with regular expression> を受信しました。
2<string2 with regular expression> を受信しました。
3<string3 with regular expression> を受信しました。
4<string4 with regular expression> を受信しました。
5<string5 with regular expression> を受信しました。
6<string6 with regular expression> を受信しました。
7<string7 with regular expression> を受信しました。
8<string8 with regular expression> を受信しました。
9<string9 with regular expression> を受信しました。
10<string10 with regular expression> を受信しました。
inputstr文字列受信した行
matchstr整数最初にマッチしたパターン
groupmatchstr1文字列1つ目にグループマッチしたパターン
groupmatchstr2文字列2つ目にグループマッチしたパターン
groupmatchstr3文字列3つ目にグループマッチしたパターン
groupmatchstr4文字列4つ目にグループマッチしたパターン
groupmatchstr5文字列5つ目にグループマッチしたパターン
groupmatchstr6文字列6つ目にグループマッチしたパターン
groupmatchstr7文字列7つ目にグループマッチしたパターン
groupmatchstr8文字列8つ目にグループマッチしたパターン
groupmatchstr9文字列9つ目にグループマッチしたパターン

関連コマンド

関連コマンドはありません。

使用方法

使用例

timeout = 30
waitregex 'Longhorn' '.*@sai' 'Pentium\d+' 'TeraTermX{3}'
int2str s result
messagebox s 'result'
messagebox inputstr 'inputstr'
messagebox matchstr 'matchstr'

サンプル

サンプルマクロはありません。

備考

特にありません。