如何用正则表达式选取指定结果?

aXFD_YY 2018-11-13 01:36:52
比如有一段字符串
06-Nov-2018 14:32:48.678 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/root/tomcat/apache-tomcat-8.5.34/webapps/manager] has finished in [103] ms

使用(.*?\s)匹配后结果为
06-Nov-2018
14:32:48.678
INFO
[localhost-startStop-1]
org.apache.catalina.startup.HostConfig.deployDirectory
Deployment
of
web
application
directory
[/root/tomcat/apache-tomcat-8.5.34/webapps/manager]
has
finished
in
[103]

但是只想取前5个结果怎么办?
...全文
98 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2018-11-13
  • 打赏
  • 举报
回复
package com.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test07 {

public static void main(String[] args) {

List<String> result = new ArrayList<String>();

String REGEX_TIMESCALE = "06-Nov-2018 14:32:48.678 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/root/tomcat/apache-tomcat-8.5.34/webapps/manager] has finished in [103] ms";
Pattern pattern = Pattern.compile("(.*?\\s)");
Matcher matcher = pattern.matcher(REGEX_TIMESCALE);
while (matcher.find()) {
result.add(matcher.group(1));
}
System.out.println(result);
}
}


result里面前5个就是你要的

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧