我正在使用JAVA创建FTP客户端而不使用任何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..."
之类的响应
任何帮助将不胜感激!
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!