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

  1. начинается с двух символов [A-Za-z]
  2. заканчивается любым количеством цифр

Мой код:

Regex.IsMatch("AA00000000000", $"^[A-Za-z]{2}[0-9]*$")

Но возвращает False. Где я не прав? Я уже тестировал то же регулярное выражение с тем же вводом на regexstorm.net, и это работает.

1
Leonardo Lurci 18 Фев 2020 в 14:11

3 ответа

Лучший ответ

Работая для меня с кодом ниже:

string pattern = @"^[A-Za-z]{2}[0-9]*$";
string str = "AA00000000000";
bool val = Regex.IsMatch(str, pattern);
1
Manoj Choudhari 18 Фев 2020 в 11:18

Вы ставите «$» перед своим регулярным выражением, потому что часть «{2}» будет интерпретироваться как просто «2», поэтому регулярное выражение выглядит следующим образом: «^ [A-Za-z ] 2 [ 0-9 ] * $ » .

1
Gönnhardt 18 Фев 2020 в 11:22

Метод Regex.IsMatch возвращает логическое значение. Пожалуйста, попробуйте с этим способом. Вы также можете попробовать использовать "$"

1
mbies 18 Фев 2020 в 11:27