Как сделать регулярное выражение для строки, за которой следует Дата
Я хочу создать регулярное выражение для следующей строки
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
- буквальная строка$
конец строки.