Как сделать регулярное выражение для строки, за которой следует Дата

Я хочу создать регулярное выражение для следующей строки

Daily_Batch_summary_001_SS11_20181107165728.log
Monthly_Batch_summary_002_SS11_20181107165811.log

Теперь я знаю, что _Batch_summary_ а также _SS11_ всегда будет обычным явлением.

Регулярное выражение, с которым я в конечном итоге _Batch_summary_001_SS11_(\d+).log$ теперь я не знаю, что использовать в начале регулярного выражения для представления, как вы можете видеть ежедневно, утром это слово может измениться. также 001, 002 меняется, так что мне нужно немного трюк для тех, кто тоже

Буду признателен за любую помощь и мои извинения, если я что-то упустил в объяснении моей проблемы.

1 ответ

Решение

Вы можете сопоставить любое количество символов, кроме _ с [^_]*и, чтобы соответствовать 1 или более цифрам, используйте \d+:

^([^_]*)_Batch_summary_(\d+)_SS11_(\d+)\.log$

Смотрите демо-версию регулярного выражения.

подробности

  • ^ - начало строки
  • ([^_]*) - Группа 1: любые 0+ символов кроме _ ([^_] класс отрицательных символов, соответствующий любым символам, кроме определенных в классе)
  • _Batch_summary_ - буквальная строка
  • (\d+) - Группа 2: одна или несколько цифр
  • _SS11_ - буквальная строка
  • (\d+) - Группа 3: одна или несколько цифр
  • \. - точка
  • log - буквальная строка
  • $ конец строки.
Другие вопросы по тегам