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