Регулярное выражение C #, разрешающее только буквенно-цифровые символы

У меня есть следующее регулярное выражение ^ [a-zA-Z0-9] + $ , которое позволяет использовать буквенно-цифровые символы. Проблема здесь в том, что если я введу только числовой символ, например «897687», то регулярное выражение все равно будет совпадать. Я не хочу, чтобы это случилось. Должен быть хотя бы один текстовый символ, и он должен начинаться с текстового символа. Например, например, «a343», «a98bder» или «a4544fgf343»

Было бы здорово, если бы вы помогли мне улучшить мое регулярное выражение для этого.

26
задан niico 2 November 2016 в 00:36
поделиться

3 ответа

На всякий случай, когда символов ASCII в какой-то момент недостаточно, здесь версия Unicode:

^\p{L}[\p{L}\p{N}]*$

\p{L} - это любая кодовая точка Unicode, которая имеет букву свойства ==> Любая буква из любой язык (в Unicode)

\p{N} - это любая кодовая точка Unicode, у которой есть свойство number ==> Любой символ числа из любого языка (в Unicode)

13
ответ дан 28 November 2019 в 06:37
поделиться

Эта функция будет возвращать true или false в зависимости от того, соответствует ли регулярное выражение или нет,

   public static Boolean isAlphaNumeric(string strToCheck)
    {
        Regex rg = new Regex(@"^[a-zA-Z0-9\s,]*$");
        return rg.IsMatch(strToCheck);
    }
3
ответ дан 28 November 2019 в 06:37
поделиться

Это лучшее решение для проверки буквенно-цифровых символов,

  • , если это только строка - «Ошибка».
  • если это только целое число - «Ошибка».
  • , если оно буквенно-цифровое - «Успех».

    if (System.Text.RegularExpressions.Regex.IsMatch(txt.Text, @"[a-zA-Z]") && 
        System.Text.RegularExpressions.Regex.IsMatch(txt.Text, @"[0-9]")      
    {
        // Success - It is alphanumric
    }
    else   
    {
        // Error - It is not alphanumric
    }
    
0
ответ дан 28 November 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: