Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритми та структури даних ЗПІ-91-20210115T104612Z-001 / Лекція 14. Регулярні вирази.docx
Скачиваний:
29
Добавлен:
15.01.2021
Размер:
56.28 Кб
Скачать

Символи повторення

Позначення

Опис

Шаблон

Відповідність

*

Відповідає попередньому елементу нуль або більше разів

  \ d *.

 «a», «1b», «23c» в «a1b23c»

+

Відповідає попередньому елементу один або більше разів

  \ d +.

  «1b», «23c» в «a1b23c»

?

Відповідає попередньому елементу нуль або один раз 

\ d? \ D

 «a», «1b», «3с» в «a1b23c»

{n}

Відповідає попередньому елементу, який повторюється рівно n раз

  \ d {2}

 «43», «54», «82» в «2,43,546,82»

{n,}

Відповідає попередньому елементу, який повторюється мінімум n раз 

 \ d {2,}

 «43», «546», «82» в «2,43,546,82»

{n, m}

Відповідає попередньому елементу, який повторюється мінімум n раз і максимум m

 \ d {2,}

 «43», «546», «821» в «2,43,546,8212» 

Символи прив'язки

Позначення

Опис

Шаблон

Відповідність

^

Відповідність має перебувати на початку рядка 

^ \ d {2}

«32» в «32,43,54»

$

Відповідність має перебувати в кінці рядка або до символу \ n при багаторядковому пошуку

  \ d {2} $

  «54» в «32,43,54»

\ b

Відповідність має перебувати на кордоні алфавітно-цифрового символу (\ w) і не алфавітно-цифрового (\ W)

 \ b \ d {2}

 «32», «54» в «32 a43 54»

\ B

Відповідність не повинно знаходитися на межі

 \ B \ d {2}

 «43» в «32 a43 54»

\ G

Відповідність має перебувати на позиції кінця попереднього відповідності 

\ G \ d

 "3", "2", "4" в "324.758"

Cимволи вибору

Позначення

 Опис

 Шаблон

 Відповідність

|

Працює як логічне «АБО» - відповідає першому і / або другому шаблоном

 one | two

«one», «two» в «one two three»

(Група символів)

Групуються набір символів в єдине ціле для якого далі можуть використовуватися + *? і т.д. Кожній такій групі призначається порядковий номер зліва направо, починаючи з 1. За цим номером можна посилатися на групу \ номер групи

(one) \ 1

  «oneone» в «oneone onetwoone»

(?: Група символів)

Те ж угрупування тільки без призначення номера групи

 (?: One) {2} 

«oneone» в «oneone onetwoone»

Інші символи

Позначення

Опис

Шаблон

Відповідність

\ t

Символ табуляції

 \ t

 

\ v

 Символ вертикальної табуляції

 \ v

 

\ r

Символ повернення каретки

 \ r

 

\ n

 Символ переводу рядка

 \ n

 

\f

 Символ переводу сторінки

 \ f

 

\

Символ, який дозволяє екранувати спеціальні символи, щоб ті сприймалися буквально. Наприклад, щоб була відповідність символу зірочки, шаблон буде виглядати так \* 

\ d \. \ d

"1.1», «1.2» в «1.1 1.2»

У цих таблицях представлені далеко не всі елементи мови регулярних виразів, але їх цілком достатньо для більшості можливостей.

Приклади застосування регулярних виразів

Приклад 6. Перевірка правильності мобільного телефону

Форма 1: тільки цифри

class Program

{//перевірка правильності мобільного телефону

static void Main(string[] args)

{//тільки цифри, наприклад 0501101129

Regex myReg1 = new Regex(@"^([0-9]{10}$)");

Console.WriteLine(myReg1.IsMatch("0501101129"));

Console.ReadKey();

}

}

Форма 2: з вказівкою коду регіону, оператора, можливих пробілів і цифр [0-9].

class Program

{//перевірка правильності мобільного телефону

static void Main(string[] args)

{

//варіант 2. розширений номер.

// з вказівкою коду регіону, оператора, можливих пробілів і цифр

List<string> phoneList = new List<string>();

phoneList.Add("+380 501101129");

phoneList.Add("050 110 1129");

phoneList.Add("(380) 501101129");

Regex myReg1 = new Regex(@"\(?([0-9]{3})\)?[ ]?([0-9]{3})[ ]?([0-9]{4})");

foreach (var list in phoneList)

{

if (myReg1.IsMatch(list))

Console.WriteLine(true);

else

Console.WriteLine(false);

}

Console.ReadKey();

}

}