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

Что такое регулярные выражения?

Регулярные выражения (или regex) — это мощный инструмент для работы с текстом. Они позволяют искать, заменять и проверять строки с помощью шаблонов. Используются во множестве языков программирования для обработки строк и валидации данных. Ниже представлены основные шаблоны и квантификаторы, которые помогут вам в работе с регулярными выражениями.

Шаблоны, соответствующие одному символу

Шаблон Описание Пример Применяем к тексту
.Один любой символ, кроме новой строким.л.комолоко, малако, Им0л0коИхлеб
\dЛюбая цифраСУ\d\dСУ35, СУ11, АЛСУ14
\DЛюбой символ, кроме цифры926\D123926)123, 1926-1234
\sЛюбой пробельный символбор\sодабор ода, борода, борода
\SЛюбой непробельный символ\S123X123, я123, !123456
\wЛюбая буква, цифра или _\w\w\wГод, f_3, qwert
\WЛюбая не-буква, не-цифра, не подчёркиваниесом\Wсом!, сом?
[..]Один из символов в скобках или диапазон[0-9][0-9A-Fa-f]12, 1F, 4B
[^..]Любой символ, кроме перечисленных<[^>]><1>,

Квантификаторы

Шаблон Описание Пример Применяем к тексту
{n}Ровно n повторений\d{4}1, 12, 123, 1234, 12345
{m,n}От m до n повторений\d{2,4}1, 12, 123, 1234, 12345
{m,}Не менее m повторений\d{3,}1, 12, 123, 1234, 12345
?Ноль или одно вхождениевалы?вал, валы, валов
*Ноль или болееСУ\d*СУ, СУ1, СУ12
+Одно или болееa\)+a), a)), a)))

Примеры кода

Проверка текста на pattern

string email = EmailTextBox.Text;
string pattern = @"^.+\@.+\..+$";
if (Regex.IsMatch(email, pattern))
    MessageBox.Show("Верный формат");
else
    MessageBox.Show("Неверный формат");
    

Проверка ввода текста

private void NumbersOnlyTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    string pattern = @"^\d+$";
    e.Handled = !Regex.IsMatch(e.Text, pattern);
}
    

Замена текста

string input = InputTextBox.Text;
string result = Regex.Replace(input, @"\s+", "-");
OutputTextBlock.Text = result;
    

Часто задаваемые вопросы (FAQ)

Как мне использовать регулярные выражения в коде?
Регулярные выражения можно использовать через встроенные функции языка программирования, например, в C# это Regex.IsMatch() и Regex.Replace().

Что делать, если регулярное выражение не срабатывает?
Проверьте, правильно ли указаны шаблоны, а также учитывайте особенности символов, таких как пробелы и специальные знаки, которые могут влиять на результат.