# waitregex

正規表現文字列を含む行を待つ。(バージョン 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'

## 参照

- regexoption
- wait
- waitln