@WoT_Seller

Регулярное выражение в .BAT, как правильно написать?

Здравствуйте! Появилась необходимость в использовании батника, думал закину туда регулярку которою использую в обычном блокноте - но в батнике она отказывается работать.
Вот сама регулярка: (^.*:.*)(2000)(.*$)
Прошу вас, помогите пожалуйста! Быть может её как-то нужно видоизменить? Я в этом деле буквально пару дней, только ещё учусь.
  • Вопрос задан
  • 1400 просмотров
Пригласить эксперта
Ответы на вопрос 3
gbg
@gbg
Любые ответы на любые вопросы
Никак. CMD не поддерживает регулярки
Ответ написан
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Отчасти Армянское Радио прав: вы не сможете использовать ваше регулярное выражение в cmd скриптах.
Выхода 2:
1. переписать регулярку на использование средств командной строки
например findstr или for
Однако с группами в findstr я вот не умею работать и даже не представляю, умеет ли он группы
for /f группы умеет, но ограниченно и поддерживать два вида регулярок вам оно надо?
2. использовать powershell
https://docs.microsoft.com/en-us/powershell/module...
Опять таки не гарантирую, что ваша регулярка подойдет без переделок (а еще не гарантирую что в вашей версии posh будет такое же поведение как в описанном документе)
Ответ написан
@res2001
Developer, ex-admin
Добавлю свои 5 копеек к ответам:
Текст вашей регулярки содержит спец символы cmd, которые надо экранировать.
Спец. символы в вашем случае это символы: ^()
Экранируются с помощью символа ^
Этим набором спец. символы cmd не исчерпываются и экранирование не всегда такое как в этом случае.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы