正则表达式以匹配静态关键字和变量

绿化

我正在寻找一种更简洁的方法来使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果后面跟着空格和关键字,则正则表达式跳过匹配

使用正则表达式替换html标签和锚点(a)标签文本外部的匹配关键字

如何使用正则表达式匹配关键字和定界字符之间的字符:Python?

如何在匹配后和正则表达式中的关键字之前隐藏文本?

PHP正则表达式匹配多个关键字,其中last关键字是可选的

基于关键字过滤的正则表达式

匹配部分正确关键字的正则表达式

Golang正则表达式以匹配关键字对之间的多种模式

匹配正则表达式中不包括关键字的短语

Apify:PseudoUrl正则表达式以匹配包含给定关键字的URL

正则表达式按顺序匹配 2 个分隔的关键字

正则表达式匹配阿拉伯关键字

正则表达式用于多个关键字匹配

正则表达式匹配特定上下文中的关键字

正则表达式以匹配不在<a>标签或alt属性内的关键字

正则表达式匹配特定关键字之间的文本

正则表达式仅匹配整个单词的多个关键字搜索

Perl正则表达式查找关键字而不是变量

如何使用正则表达式和相交函数将关键字与文件分开

正则表达式获取关键字,所有数字和句点

用于数字集和关键字的Python正则表达式

如何使用正则表达式和一系列关键字替换?

正则表达式在括号和关键字之间获取文本

匹配不具有相同单词的关键字的正则表达式出现在另一个关键字之前

使用一个或多个单词作为搜索关键字匹配一行的正则表达式

如何匹配带有或不带有关键字的多行日志条目(正则表达式)

用于搜索特定关键字的正则表达式以及用于时间搜索的正则表达式

正则表达式和Java忽略引号内的关键字和字符串

正则表达式:获取同一表达式中多个匹配项的跨度 IF 前面有一个关键字