Java: выражение регулярного выражения для соответствия кодам ответов FTP - PullRequest
0 голосов
/ 28 января 2020

Я создаю FTP-клиент в JAVA без использования библиотек FTP, и я хочу знать, когда ответ FTP завершается с помощью регулярного выражения, чтобы я знал, когда прекратить чтение. Поэтому я пытаюсь создать регулярное выражение, которое ищет любые три цифры и пробел после этого, чтобы я мог сказать своей программе прекратить чтение строк из соединения.

Вот что у меня сейчас есть: response.matches("^[0-9][0-9][0-9](?:\\s)")

Он должен перехватывать такие коды, как: "230 Process complete" или "543 Have a nice day!", но не такой ответ, как "400- There's more to be read..."

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 14 марта 2020
String response = "543 Have a nice day!";
Pattern pattern = Pattern.compile("(\\d{3}) ([\\w !]+)");
Matcher matcher = pattern.matcher(response);
if (matcher.find()) {
    System.out.println("code: " + matcher.group(1));
    System.out.println("message: " + matcher.group(2));
} else {
    System.out.println("the code is not recognized");
}

Выход:

code: 543
message: Have a nice day!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...