ユーザー名を取得するためにチャット出力を解析しています。出力は次のようになります。
<Darker> MC_BOT sethome
(From Darker): MC_BOT exit
文字列内のユーザー名とコマンドの内容を一致させる必要があります。両方の文字列からこれらのデータを取得するのは簡単です。
^(<([A-Za-z0-9_]+)>|\\(From ([A-Za-z0-9_]+)\\):) MC_BOT ([a-z]+)( [a-zA-Z0-9 ]+)?$
|<Darker> |(From Darker): |sethome
問題は、<Darker>
出力フィールド2が使用されているのに対し(From Darker)
、パーサーはフィールド3を使用していることです。
<Darker> MC_BOT command parameters
1: <Darker>
2: Darker - field 2!
3:
4: command
5: parameters
(From Darker): MC_BOT command parameters
1: (From Darker):
2:
3: Darker - field 3!
4: command
5: parameters
では、この正規表現をどのように記述して、同じフィールドにユーザー名が含まれるようにする必要がありますか?また、正規表現に無視させることはでき(...|...)
ますか?<username>
またはではなく、ユーザー名と一致する必要があるだけです(From username):
。