我有一个响应字符串,如下所示
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>........
<date+time>
然后[SELOGER]:: [Seloger value]-
然后[PROGRESS or STOP or START]:
然后值marminto=true, france24=true,.....
我如何用regex
执行此操作?或者任何可用于检测字符串的java API都以特定格式打印。
试试这种模式:
\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)
- 有条件的,匹配任何来自PROGRESS
,STOP
或START
(?:[a-z0-9]+=(?:true|false), ?)*
- 匹配零个或多个value=true
/ value=false
对,可选地后跟空格,后跟逗号