我正在尝试拆分如下所示的日志行:
15:10:10,408 INFO <NioProcessor-11> Raw Message: 8=FIXT.1.1|9=317|35=D|49=verifix|
变成这样的东西:
15:10:10
408
INFO
NioProcessor-11
FIXT.1.1
317
D
verifix
拆分中的每个信息。
我尝试用 split 函数来分割它,仅使用
mystring.split((,)| \\\|)
这将我的代码拆分为类似的内容:
15:10:10
408 INFO <NioProcessor-11> Raw Message: 8=FIXT.1.1
9=317
35=D
49=verifix
然后我进行了第二次分割408 INFO <NioProcessor-11> Raw Message: 8=FIXT.1.1
并做一个子串。它有效,但并不完美,因为有时第二次分割更长或更短,它看起来不是一个好的解决方案。
我想知道是否可以实际使用正则表达式拆分该字符串。我是正则表达式的新手,我没有找到一种方法来编写处理我的目标的表达式。
最佳答案
(?:> [^:]+: |\d+=|[ ,|<>])+
-
(?:)+
匹配以下任一选项一次或多次-
> [^:]+:
火柴>
,然后是除
:
之外的一个或多个任意字符,然后:
-
\d+=
匹配一位或多位数字,然后=
-
[ ,|<>]
匹配集合中的任意字符
-
结果:
15:10:10
408
INFO
NioProcessor-11
FIXT.1.1
317
D
verifix
关于java - 用正则表达式分割java日志行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49076594/