【发布时间】:2016-02-18 03:20:19
【问题描述】:
我想使用 Java 正则表达式支持提取 粗体 中的文本。
我可以使用条件前瞻使其工作,正则表达式为
(\d{2})(\d{1,2})(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})\s+(\S+)\s+(?(?=.*\d{4}-\d{1,2}-\d{1,2})([^\d{4}]*)|(.*))
但是,Java Pattern 类不支持条件前瞻。有没有办法重写正则表达式以使其与 Java Pattern 类一起使用?
160203 03:24:24 mysqld_safe 使用 /var/lib/mysql 中的数据库启动 mysqld 守护进程2016-02-03 03:24:25 0 [警告] 不推荐使用带有隐式 DEFAULT 值的 TIMESTAMP .请使用 --explicit_defaults_for_timestamp 服务器选项(有关详细信息,请参阅文档).2016-02-03 03:24:25 0 [注意] /opt/devenv/mysql/mysql-5.6.27-linux-glibc2.5-x86_64/ bin/mysqld (mysqld 5.6.27) 从进程 29491 ...2016-02-03 03:24:25 29491 [注意] IPv6 可用。
160203 21:33:17 mysqld_safe 现在运行的进程数:0
160203 21:33:17 mysqld_safe mysqld 重启2016-02-03 21:33:18 1125 [注意] 服务器主机名(绑定地址):'*';端口:33062016-02-03 21:33:18 1125 【注】IPv6可用。
【问题讨论】:
-
您应该阐明提取文本的规则。例如,它必须是行首或某事。
-
当然,应该提到这一点。我想提取所有文本,直到第一次出现类似于 2016-02-03 的日期模式,或者如果没有找到该模式,直到结束。