【问题标题】:Java: Regex expression to match FTP response codesJava:匹配 FTP 响应代码的正则表达式
【发布时间】:2020-01-28 00:46:38
【问题描述】:

我在没有使用任何 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..." 这样的响应

任何帮助将不胜感激!

【问题讨论】:

  • 由于您使用的是matches(...),因此正则表达式必须匹配整行(这也使得^ 变得多余)。使用matches("[0-9]{3}\\s.*") 或在Matcher 上使用find() 方法。
  • 谢谢!这就是我一直在寻找的

标签: java regex ftp


【解决方案1】:
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!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多