【发布时间】:2015-04-09 18:25:46
【问题描述】:
这里是获取远程 SMTP 服务器名称的方法:
public static String getMTAName(String data) {
Pattern p = Pattern.compile("^\\d{3}[ -](.*?)( .*)*$");
Matcher m = p.matcher(data);
if (m.find()) {
return m.group(1);
}
return "undefined";
}
问题是,如果我传递多行响应,例如:
String s = "220-xsistema.lt ESMTPSA XMailServer 1.2 service ready\r\n220 Some other info";
System.out.println(getMTAName(s));
输出是“未定义的”。但是如果:
s = "220-xsistema.lt ESMTPSA XMailServer 1.2 service ready";
然后一切正常 - 输出是“xsistema.lt”。我的问题是 - 如何只匹配第一行?
【问题讨论】:
标签: java regex pattern-matching