我正在寻找一种更简洁的方法来使用Perl风格的正则表达式从字符串中捕获关键字。
示例字符串为:
QSECOFR Logins: (Information / 00) Job 874194/QSECOFR/ABC1E started on 09/01/20 at 14:06:13 in subsystem INTER in QSYS. Job entered system on 09/01/20 at 14:06:13. (at 2020-01-09 14:06:13)
我需要捕获关键字(带有正斜杠):
/QSECOFR/
以及子系统一词之后的以下潜在变量
INTER
QINTER
QINTER2
QCTL
我有以下正则表达式,但正在寻找一种更紧凑的检查方法:
/\/QSECOFR\/\w+\s\w+\s+\w+\s\d+\/\d+\/\d+\s\w+\s\d+:\d+:\d+\sin\ssubsystem\s(?:QINTER|QINTER2|INTER|QCTL)\sin\sQSYS/
这个测试在这里很好:https : //regex101.com/r/eSyRVZ/1
但是,有些过度设计的东西将是首选。
谢谢!
编辑:
为了使内容更清楚,我希望找到与以下任意一项匹配的正则表达式:
QSECOFR Logins: (Information / 00) Job 874194/QSECOFR/ABC1E started on 09/01/20 at 14:06:13 in subsystem INTER in QSYS. Job entered system on 09/01/20 at 14:06:13. (at 2020-01-09 14:06:13)
QSECOFR Logins: (Information / 00) Job 874194/QSECOFR/ABC1E started on 09/01/20 at 14:06:13 in subsystem QINTER in QSYS. Job entered system on 09/01/20 at 14:06:13. (at 2020-01-09 14:06:13)
QSECOFR Logins: (Information / 00) Job 874194/QSECOFR/ABC1E started on 09/01/20 at 14:06:13 in subsystem QINTER2 in QSYS. Job entered system on 09/01/20 at 14:06:13. (at 2020-01-09 14:06:13)
QSECOFR Logins: (Information / 00) Job 874194/QSECOFR/ABC1E started on 09/01/20 at 14:06:13 in subsystem QCTL in QSYS. Job entered system on 09/01/20 at 14:06:13. (at 2020-01-09 14:06:13)
最后解决了这个问题:
/.*\/QSECOFR\/.*(?:QINTER|QINTER2|ABCINTER|QSYS).*/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句