2009-11-19 2 views
1

пользователь может поместить файл на сервере, если имя файла соответствует следующим критериям:Regex шаблон для имени файла

Он должен начинаться с ABC, а затем точку, и номер.

Valid file names: 

    abc.2344 
    abc.111 

Invalid: 

    abcd.11 
    abc.ab12 

Каким будет регулярное выражение? Я не могу просто использовать abc. *.

+0

Какой бы язык вы ни использовали, я уверен, что он имеет документы о регулярных выражениях. Вы * действительно * должны читать их, прежде чем слепо использовать любое regexp, брошенное на вас. – Boldewyn

ответ

0

abc\.\d+ должен соответствовать его

\. совпадает с .

\d соответствует любой цифре

0
abc\.\d+ 

\ d означает любую цифру.

+0

И '.' будет соответствовать любому персонажу, если вы не избежите его с помощью обратного слэша! – LukeH

+0

Конечно. Это было съедено по сценарию (-: –

1

Предполагая Perl регулярного выражение:

^а \ \ d + $

0

Или немного более многословный (= читаемый):.

^abc\.[0-9]+$ 

где квадратные скобки обозначают группы символов.

Кстати: каретка (^) означает «начало», а доллар означает «конец» рассматриваемой строки (иногда^и $ могут означать начало и конец одной строки. Это зависит).

0

\ d + и [0-9] + все еще падают от его требования, чтобы «abcd.11» был недействительным.

В Perl вы можете сказать:

/^abcd.\d{3,}$/

Для обозначения "ABCD". после чего следует как минимум 3 цифры. Не все языки регулярных выражений поддерживают этот синтаксис, поэтому проверьте свою документацию.

+0

Насколько я могу судить, он не ограничивал количество цифр. – Boldewyn

+0

Ага, вы кажутся правильными. Моя ошибка, я просмотрел d, не регистрируя разницу. ^ abc \. \ D + $ правильный. – Sorpigal

Смежные вопросы