Регулярные выражения в 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
Шаблон № 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);
}
}
// Конец исходного кода