Java:匹配FTP响应代码的正则表达式

问题描述 投票:0回答:1

我正在使用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..."之类的响应

任何帮助将不胜感激!

java regex ftp
1个回答
0
投票
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!
© www.soinside.com 2019 - 2024. All rights reserved.