Подтвердить что ты не робот

Регулярное выражение для 1 или 2 цифр, необязательное не буквенно-цифровое, 2 известных альфа

Я бил головой о стену, пытаясь сделать то, что должно быть простым регулярным выражением - мне нужно сопоставить, например, "12po", где "12" часть может быть одной или двумя цифрами, alphanumeric, например a:,., -, _ и т.д., затем строку 'po'.

В конечном итоге использование будет в С#, но я бы хотел, чтобы он работал в регулярной grep в командной строке. У меня нет доступа к С#, что не помогает.

4b9b3361

Ответ 1

^[0-9]{1,2}[:.,-]?po$

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

Ответ 2

^\d{1,2}[\W_]?po$

\d определяет число и {1,2} означает 1 или два выражения before, \W определяет символ без слова.

Ответ 3

^[0-9][0-9]?[^A-Za-z0-9]?po$

Вы можете протестировать его здесь: http://www.regextester.com/

Чтобы использовать это в С#,

Regex r = new Regex(@"^[0-9][0-9]?[^A-Za-z0-9]?po$");
if (r.Match(someText).Success) {
   //Do Something
}

Помните, что @- полезный символ, который означает, что синтаксический анализатор берет строку буквально (например, вам не нужно писать\\для одной обратной косой черты)