正则表达式以匹配括号和字符串长度之间的数据

时间:2019-06-10 15:52:45

标签: regex

我正在使用以下字符串:

02:05:31,624 TRACE [com.test.enterprise.process.module.AZZADM13] (default task-6) [2019-06-10][02:05:31][5330985][TESTSRV ][AZZADM13                 ][process - ENTER               ]

使用正则表达式我想匹配TESTSRV。为此,我需要匹配两个括号之间的值,即大写字母(AZ)或空格,长度为10(包括括号)或长度为8(不包括括号)。

这是我的开始表情:

\[([A-Z ]+)\]{10}

这与“括号内”匹配,但是我似乎无法获得所需的长度。任何建议表示赞赏。

在此示例中,我希望在TESTSRV上匹配。

1 个答案:

答案 0 :(得分:0)

我不确定其他输入是什么样子,我想我们可能会有可选的空格,我们可以在表达式中的任何需要的地方添加这些空格:

\[[0-9]+\](\s+)?\[(\s+)?(.+?)(\s+)?\](\s+)?\[[A-Z0-9]

Demo 1

如果不必要的可选空格(\s+)?,我们可以简单地删除任何(\s+)?

在这里,我们有一个左边界:

\[[0-9]+\]

和右边界:

\[[A-Z0-9]

,我们所需的输出在此捕获组中:

(.+?)

以及一些可选的空格组:

(\s+)?

RegEx电路

jex.im可视化正则表达式:

enter image description here