/ / Редовно изговаряне за потвърждаване на вход - c #, regex

Редовно изражение за потвърждаване на вход - c #, regex

Трябва да направя регулярен израз, който проверява дали низът съдържа само букви или цифри, първият знак трябва да е буквата, а минималното количество знак е 2 и максимум 10.

string shablon = "/^[a-zA-Z]{2,10}/g";
Regex myRegex = new Regex(shablon);
return myRegex.IsMatch(Login);

за вход "Игал" връща ми фалшива

всяко предложение?

Отговори:

0 за отговор № 1

Това е тествано за c # и можете да използвате този код:

  string shablon = @"^[a-zA-Z]{1}[a-zA-Z1-9]{1,9}";
Regex myRegex = new Regex(shablon);
var r= myRegex.IsMatch("Igal");

2 за отговор № 2

Пишете вашия регекс с a наклонена черта отпред и а /g отзад, това е не е част от действителния регекс, това са неща, които някои библиотеки използват представляват регекси, Но библиотеката .NET използва флагове, предавани на Regex конструктор.

Освен това забравихте долар ($) в края на регенерацията. Така че можете да използвате:

csharp> string shablon = "^[a-zA-Z]{2,10}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true

ако низът съдържа само букви или цифри, първият знак трябва да е буквата, а минималното количество знак е 2 и максимум 10.

Вашият регекс съвпада само A-Za-z два до десет пъти. Така че не позволявайте цифри. Можете обаче да пренапишете своя регекс:

csharp> string shablon = "^[a-zA-Z][a-zA-Z0-9]{1,9}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true

Регексът се състои от две части:

  1. [a-zA-Z] символ, който е буква; следван от
  2. [a-zA-z0-9]{1,9} една до девет букви и / или цифри.