使用java验证字符串以特定格式打印

问题描述 投票:-4回答:1

我有一个响应字符串,如下所示

21.03.2019_15:06.26 [SELOGER]:: [Seloger value]-[PROGRESS]:  marminto=true, france24=true,

使用Java我必须验证以上响应以下列格式打印:

<date+time> [SELOGER]:: [Seloger value]-[<PROGRESS|STOP|START>]: <value1>=<true|false>, <value2>=<true|false>........
  1. 首先是<date+time>然后[SELOGER]:: [Seloger value]-然后[PROGRESS or STOP or START]:然后值marminto=true, france24=true,.....

我如何用regex执行此操作?或者任何可用于检测字符串的java API都以特定格式打印。

java regex
1个回答
1
投票

试试这种模式:

\d{2}\.\d{2}\.\d{4}\_\d{2}:\d{2}\.\d{2} \[SELOGER\]:: \[Seloger value\]-\[(?:PROGRESS|STOP|START)\]: *(?:[a-zA-Z0-9]+=(?:true|false), ?)*

说明:

\d{2}\.\d{2}\.\d{4}\_\d{2}:\d{2}\.\d{2}以指定格式匹配日期

(?:PROGRESS|STOP|START) - 有条件的,匹配任何来自PROGRESSSTOPSTART

(?:[a-z0-9]+=(?:true|false), ?)* - 匹配零个或多个value=true / value=false对,可选地后跟空格,后跟逗号

Demo

© www.soinside.com 2019 - 2024. All rights reserved.