正規表現文字列を含む行を待つ。(バージョン 4.21以降)
waitregex <string1 with regular expression> [<string2 with regular expression> ...]
Oniguruma の正規表現 が使用できます。
正規表現文字列のうち 1 つ以上を含む行(最大 511 文字)をホストから受信するか、タイムアウトが発生するまで MACRO を停止させる。正規表現文字列は最大 10 個まで指定できる。
システム変数 timeout か mtimeout が 0 より大きい場合、<timeout>.<mtimeout> 秒の時間がすぎるとタイムアウトが発生する。タイムアウトの値が 0 以下の場合は、タイムアウトは発生しない。
これらのコマンドの実行結果はシステム変数 result , inputstr, matchstr に格納される。変数 result の値の意味は以下のとおり。
値 | 意味 |
---|---|
0 | タイムアウト。どの文字列も来なかった。 |
1 | <string1 with regular expression> を受信した。 |
2 | <string2 with regular expression> を受信した。 |
n | <stringn with regular expression> を受信した。n=1..10 |
変数 inputstr には受信した行が格納される。
変数 matchstr には最初にマッチしたパターンが格納される。
変数 groupmatchstr1〜groupmatchstr9 にはグループマッチしたパターンが格納される。
日本語等のマルチバイト文字列を待つ場合、事前にregexoptionで適切なエンコーディングを設定しておく必要がある。
timeout = 30 waitregex 'Longhorn' '.*@sai' 'Pentium\d+' 'TeraTermX{3}' int2str s result messagebox s 'result' messagebox inputstr 'inputstr' messagebox matchstr 'matchstr'