我正在使用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!

关于java - Java:正则表达式以匹配FTP响应代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59940876/

10-13 01:20