Я ищу более краткий способ захвата ключевых слов из строки, используя 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)