строка регулярных выражений заканчивается на .log и содержит номера символов и —

#regex

#регулярное выражение

Вопрос:

Может кто-нибудь подсказать мне шаблон регулярных выражений, соответствующий всему, что заканчивается.log и содержит символы, числа и —

например: «системный журнал-12-10-2011 .журнал регистрации»

Комментарии:

1. Вы проверяете, соответствует ли строка шаблону, или ищете шаблон в строке большего размера?

Ответ №1:

Вы можете попробовать:

 ^[a-z0-9-] .log$
  

Комментарии:

1. Если бы вы не были привязаны, я бы проголосовал за вас. Привязка верна только при проверке строки, но мы не знаем, что именно это происходит.

2. Увы, кажется, что то, что требуется для его совершенства (привязка к концу слова), не определено спецификацией POSIX RE, поэтому мы находимся в области расширений, и мы не знаем, какой именно диалект используется.

Ответ №2:

Регулярное выражение, которое вы ищете, это

 ^[A-Za-z0-9-]*.log$
  

обратите внимание, что точка требует экранирования, а тире должно быть первым или последним символом внутри квадратных скобок (в противном случае оно обозначает диапазон символов).

Обратите внимание, что это соответствует имени файла ‘.log’. Замените звездочку на плюс, чтобы она соответствовала именам файлов хотя бы с одним символом перед точкой в ‘.log’.

Ответ №3:

Это регулярное выражение, которое вы можете использовать:

 ^[a-zA-Z0-9-] .log$
  

Комментарии:

1. Вам не нужно экранировать тире в квадратных скобках обратной косой чертой .

2. @AdamZalcman это не нужно, но мне нравится избегать этого, потому что мне нравится повторно использовать код. Поэтому, если я отредактирую это регулярное выражение, мне не нужно снова проверять все неэкранированные символы.

Ответ №4:

Регулярное выражение без учета регистра:

 ^[A-Z] -([0-9]{2}-){2}[0-9]{4}.log$
  

Это немного точнее, чем то, что вы просили (оно соответствует тексту-nn-nn-nnnn.log, где n — цифра). Если вы используете регулярное выражение POSIX (как, grep например, в), вам придется избегать круглых скобок и скобок:

 [A-Z] -([0-9]{2}-){2}[0-9]{4}.log$