Регулярные выражения в C #

Класс C # Regex предоставляет функции для реализации регулярных выражений. Пример кода включает использование регулярных выражений в C # для IsNaturalNumber, IsWholeNumber, IsPositiveNumber, IsInteger, IsNumber, IsAlpha и IsAlphaNumeric.

Класс C # Regex предоставляет функции сопоставления с образцом в форме регулярных выражений. Примеры исходного кода в этой статье показывают, как использовать регулярные выражения для проверки различных входных данных. Код предоставляет методы для проверки алфавита, буквенно-цифрового, целого, положительного целого числа, чисел с плавающей точкой и так далее.
 
Объяснение регулярных выражений
 
Регулярные выражения используются для соответствия заданному вводу или проверки формата в исходной строке.
 
Примеры:
 
Шаблон № 1
Regex objNotNaturalPattern = new  Regex ( "[^ 0-9]" );
Шаблон № 2  
Regex objNaturalPattern = new  Regex ( "0 * [1-9] [0-9] *" );
Шаблон № 1 будет соответствовать строкам, отличным от 0 до 9.
  • Символ ^ используется для указания не условия.
  • [] скобки, если мы хотим дать значения диапазона, такие как 0 - 9 или az или AZ
В приведенном выше примере вход «abc» вернет true, а «123» вернет false.
 
Шаблон № 2 будет соответствовать для строк, которые являются натуральными числами. Натуральные числа - это числа, которые всегда больше 0. Шаблон 0 * говорит о том, что к натуральному числу можно добавить префикс с любым количеством нулей или ненулевых. Следующее [1-9] говорит, что оно должно содержать как минимум одно число от 1 до 9, за которым следуют любые числа от 0 до 9.
 
В этом случае ввод «0007» вернет истину, а «00» вернет ложь.
 
Основные операторы для понимания в Regex: 
 
  • «*» соответствует 0 или более шаблонам
  • "?" соответствует одному символу
  • «^» для игнорирования совпадений.
  • «[]» для поиска шаблонов диапазона. 
Вот полный пример исходного кода, который предоставляет функции для проверки IsNaturalNumber, IsWholeNumber, IsPositiveNumber, IsInteger, IsNumber, IsAlpha и IsAlphaNumeric.   
// Исходный код запуск 
using System.Text.RegularExpressions;  
using System;  
/* 
<HowToCompile> 
csc /r:System.Text.RegularExpressions.dll,System.dll Validation.cs  
</HowToComplie> 
*/  
class Validation  
{  
    public static void Main()  
    {  
        String strToTest;  
        Validation objValidate = new Validation();  
        Console.Write("Enter a String to Test for Alphabets:");  
        strToTest = Console.ReadLine();  
        if (objValidate.IsAlpha(strToTest))  
        {  
            Console.WriteLine("{0} is Valid Alpha String", strToTest);  
        }  
        else  
        {  
            Console.WriteLine("{0} is not a Valid Alpha String", strToTest);  
        }  
    }  
    // Функция для проверки на положительные целые числа.   
    public bool IsNaturalNumber(String strNumber)  
    {  
        Regex objNotNaturalPattern = new Regex("[^0-9]");  
        Regex objNaturalPattern = new Regex("0*[1-9][0-9]*");  
        return !objNotNaturalPattern.IsMatch(strNumber) &&  
        objNaturalPattern.IsMatch(strNumber);  
    }  
    // Функция для проверки на целые положительные числа с нулем включительно   
    public bool IsWholeNumber(String strNumber)  
    {  
        Regex objNotWholePattern = new Regex("[^0-9]");  
        return !objNotWholePattern.IsMatch(strNumber);  
    }  
    // Функция для проверки целых чисел, как положительных, так и отрицательных    
    public bool IsInteger(String strNumber)  
    {  
        Regex objNotIntPattern = new Regex("[^0-9-]");  
        Regex objIntPattern = new Regex("^-[0-9]+$|^[0-9]+$");  
        return !objNotIntPattern.IsMatch(strNumber) && objIntPattern.IsMatch(strNumber);  
    }  
    // Функция для проверки положительного числа как целое, так и действительное   
    public bool IsPositiveNumber(String strNumber)  
    {  
        Regex objNotPositivePattern = new Regex("[^0-9.]");  
        Regex objPositivePattern = new Regex("^[.][0-9]+$|[0-9]*[.]*[0-9]+$");  
        Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");  
        return !objNotPositivePattern.IsMatch(strNumber) &&  
        objPositivePattern.IsMatch(strNumber) &&  
        !objTwoDotPattern.IsMatch(strNumber);  
    }  
    // Функция для проверки, является ли строка действительным числом или нет   
    public bool IsNumber(String strNumber)  
    {  
        Regex objNotNumberPattern = new Regex("[^0-9.-]");  
        Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");  
        Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");  
        String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";  
        String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";  
        Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");  
        return !objNotNumberPattern.IsMatch(strNumber) &&  
        !objTwoDotPattern.IsMatch(strNumber) &&  
        !objTwoMinusPattern.IsMatch(strNumber) &&  
        objNumberPattern.IsMatch(strNumber);  
    }  
    // Function To test for Alphabets.
    // Функция для проверки на алфавиты.   
    public bool IsAlpha(String strToCheck)  
    {  
        Regex objAlphaPattern = new Regex("[^a-zA-Z]");  
        return !objAlphaPattern.IsMatch(strToCheck);  
    }  
    // Function to Check for AlphaNumeric.
    // Функция для проверки AlphaNumeric.  
    public bool IsAlphaNumeric(String strToCheck)  
    {  
        Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]");  
        return !objAlphaNumericPattern.IsMatch(strToCheck);  
    }  
}  
// Конец исходного кода