デバッグコンソールで特定のコマンドに一致するように正規表現パターンをコンパイルしています。そのうちの1つは次のとおりです。
Pattern.compile("^\\s*\\\\connect\\s+((\\d{1,3}\\.){3}\\d{1,3})(?:\\s+(\\d+))?\\s*$");
入ることができるので
\connect 127.0.0.1 2345
または出港
\connect 127.0.0.1
フィールドを区切るために少なくとも 1 つのスペースを使用する限り、スペースは無視されます。
それは完全に機能しますが、IPがグループ1に移動する間(これは問題ありません)、ポートはグループ3に移動します(書かれているように、私は知っています)。
そこで、IP アドレスの最初の 3 つの部分に非キャプチャ グループを使用したいと考えました。
Pattern.compile("^\\s*\\\\connect\\s+((?:\\d{1,3}\\.){3}\\d{1,3})(?:\\s+(\\d+))?\\s*$");
したがって、グループ 1 で IP を取得し、グループ 2 でポートを取得すると考えました。