НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

Python Підручник

Python СТАРТ Python Інтро Python Встановлення Python Синтаксис Python Коментарі Python Змінні Python Типи даних Python Числа Python Кастинг Python Рядки Python Булеві Python Оператори Python Списки Python Кортежі Python Набори Python Словники Python If...Else Python Цикли While Python Цикли For Python Функції Python Лямбда Python Масиви Python Класи/Об’єкти Python Успадкування Python Ітератори Python Поліморфізм Python Область дії (застосування) Python Модулі Python Дати Python Математика Python JSON Python RegEx Python PIP Python Try...Except Python Користувацький ввод Python Форматування рядка

Обробка файлів

Python Обробка файлів Python Читання файлів Python Запис/Створення файлів Python Видалення файлів

Python Modules

NumPy Tutorial Pandas Tutorial SciPy Tutorial Django Tutorial

Python Matplotlib

Matplotlib Інтро Matplotlib Початок роботи Matplotlib Pyplot Matplotlib Складання графіка Matplotlib Маркери Matplotlib Лінія Matplotlib Лейбли Matplotlib Сітка Matplotlib Subplots Matplotlib Scatter Matplotlib Бари Matplotlib Гістограми Matplotlib Кругові діаграми

Машинне навчання

Початок роботи Середній режим Стандартне відхилення Перцентиль Розподіл даних Звичайний розподіл даних Діаграма розкиду Лінійна регресія Поліноміальна регресія Множинна регресія Шкала Тренування/Тест Дерево рішень Confusion Matrix Hierarchical Clustering Logistic Regression Grid Search Categorical Data K-means Bootstrap Aggregation Cross Validation AUC - ROC Curve K-nearest neighbors

Python MySQL

MySQL Початок роботи MySQL CREATE DATABASE MySQL CREATE TABLE MySQL INSERT INTO MySQL SELECT MySQL WHERE MySQL ORDER BY MySQL DELETE FROM MySQL DROP TABLE MySQL UPDATE MySQL LIMIT MySQL JOIN

Python MongoDB

MongoDB Початок роботи MongoDB Створення бази даних MongoDB Створити колекцію MongoDB Вставити MongoDB Знайти MongoDB Запит MongoDB Сортувати MongoDB Видалити MongoDB Drop колекція MongoDB Оновлення MongoDB Ліміт

Python Reference

Python Огляд Python Вбудовані функції Python Рядкові методи Python Методи списку Python Словникові методи Python Кортежні методи Python Set методи Python Файлові методи Python Ключові слова Python Винятки Python Глосарій

Довідник модулів

Модуль Random Модуль Запитів Модуль Статистики Модуль Math Модуль cMath

Python Як зробити?

Видалити копії списків Обернути рядок Додати два числа

Python Приклади

Python Приклади Python Компілятор Python Вправи Python Вікторина Python Bootcamp Python Сертифікат

Python. W3Schools українською. Уроки для початківців

En Es

Python RegEx


RegEx або Regular Expression (регулярний вираз) – це послідовність символів, яка формує шаблон пошуку.

RegEx можна використовувати, щоб перевірити, чи містить рядок указаний шаблон пошуку.


Модуль RegEx

Python має вбудований пакет під назвою re, який можна використовувати для роботи з регулярними виразами.

Імпортуйте модуль re:

import re

RegEx в Python

Коли ви імпортували модуль re, ви можете почати використовувати регулярні вирази:

Приклад

Знайдіть рядок, щоб побачити, чи починається він на "The" і закінчується на "Spain":

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
Спробуйте самі »

RegEx Функції

Модуль re пропонує набір функцій, які дозволяють нам шукати відповідність у рядку:

Функція Опис
findall Повертає список з усіма збігами
search Повертає Match об’єкт, якщо є відповідність будь-де в рядку
split Повертає список, де рядок було розділено при кожному збігу
sub Замінює один або багато збігів рядком

Метасимволи

Метасимволи – це символи зі спеціальним значенням:

Символ Опис Приклад Спробуй це
[] Набір символів "[a-m]" Спробуй це »
\ Сигналізує спеціальну послідовність (також може використовуватися для екранування спеціальних символів) "\d" Спробуй це »
. Будь-який символ (крім символу нового рядка) "he..o" Спробуй це »
^ Починати з "^hello" Спробуй це »
$ Закінчується на "planet$" Спробуй це »
* Нуль або більше випадків "he.*o" Спробуй це »
+ Один або кілька випадків "he.+o" Спробуй це »
? Нуль або один раз "he.?o" Спробуй це »
{} Точно вказана кількість повторень "he.{2}o" Спробуй це »
| Або "falls|stays" Спробуй це »
() Захоплення та групування    

Спеціальні послідовності

Спеціальна послідовність — це \, за якою йде один із символів у списку нижче, і вона має особливе значення:

Символ Опис Приклад Спробуй це
\A Повертає збіг, якщо вказані символи знаходяться на початку рядка "\AThe" Спробуй це »
\b Повертає збіг, якщо вказані символи знаходяться на початку або в кінці слова
("r" на початку гарантує, що рядок розглядається як "необроблений рядок")
r"\bain"

r"ain\b"
Спробуй це »

Спробуй це »
\B Повертає збіг, якщо вказані символи присутні, але НЕ на початку (чи в кінці) слова
("r" на початку гарантує, що рядок розглядається як "необроблений рядок")
r"\Bain"

r"ain\B"
Спробуй це »

Спробуй це »
\d Повертає збіг, якщо рядок містить цифри (числа з 0-9) "\d" Спробуй це »
\D Повертає збіг, якщо рядок НЕ містить цифр "\D" Спробуй це »
\s Повертає збіг, якщо рядок містить пробіл "\s" Спробуй це »
\S Повертає збіг, якщо рядок НЕ містить пробілу "\S" Спробуй це »
\w Повертає збіг, якщо рядок містить будь-які символи слова (символи від a до Z, цифри від 0 до 9 і символ підкреслення _) "\w" Спробуй це »
\W Повертає збіг, якщо рядок НЕ містить символів слів "\W" Спробуй це »
\Z Повертає збіг, якщо вказані символи знаходяться в кінці рядка "Spain\Z" Спробуй це »

Набори

Набір – це набір символів у парі квадратних дужок [] зі спеціальним значенням:

Набір Опис Спробуй це
[arn] Повертає збіг, де один з указаних символів (a, r, або n) присутній Спробуй це »
[a-n] Повертає збіг для будь-якого символу нижнього регістру в алфавітному порядку a та n Спробуй це »
[^arn] Повертає збіг для будь-якого символу EXCEPT a, r та n Спробуй це »
[0123] Повертає збіг будь-якої з указаних цифр (0, 1, 2, або 3) присутні Спробуй це »
[0-9] Повертає збіг для будь-якої цифри між 0 та 9 Спробуй це »
[0-5][0-9] Повертає збіг для будь-яких двозначних чисел від 00 до 59 Спробуй це »
[a-zA-Z] Повертає збіг для будь-якого символу в алфавітному порядку від a до z, нижній регістр АБО верхній регістр Спробуй це »
[+] У наборах +, *, ., |, (), $,{} не має спеціального значення, тому [+] означає: повернути збіг для будь-якого символа + у рядку Спробуй це »

 

Функція findall()

Функція findall() повертає список з усіма збігами.

Приклад

Роздрукуйте список усіх збігів:

import re

txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
Спробуйте самі »

Список містить збіги в порядку їх пошуку.

Якщо збігів не знайдено, повертається порожній список:

Приклад

Повертає порожній список, якщо відповідності не знайдено:

import re

txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
Спробуйте самі »

 

Функція search()

Функція search() шукає відповідність у рядку та повертає Match об’єкт, якщо збіг є.

Якщо знайдено більше одного збігу, буде повернено лише перший збіг:

Приклад

Пошук першого пробілу в рядку:

import re

txt = "The rain in Spain"
x = re.search("\s", txt)

print("Перший символ пробілу знаходиться на місці:", x.start())
Спробуйте самі »

Якщо збігів не знайдено, повертається значення None:

Приклад

Здійсніть пошук, який не дає результатів:

import re

txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)
Спробуйте самі »

 

Функція split()

Функція split() повертає список, де рядок було розділено при кожному збігу:

Приклад

Розділіть на кожен пробіл:

import re

txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
Спробуйте самі »

Ви можете контролювати кількість входжень, вказавши параметр maxsplit:

Приклад

Розділіть рядок лише при першому вході:

import re

txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
Спробуйте самі »

 

Функція sub()

Функція sub() замінює збіги текстом за вашим вибором:

Приклад

Замініть кожен пробіл цифрою 9:

import re

txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
Спробуйте самі »

Ви можете контролювати кількість замін, вказавши параметр count:

Приклад

Замініть перші 2 входження:

import re

txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
Спробуйте самі »

Відповідність об’єкту

Об’єкт відповідності – це об’єкт, що містить інформацію про пошук і результат.

Примітка: Якщо відповідності немає, замість об’єкта відповідності буде повернено значення None.

Приклад

Виконайте пошук, який поверне об’єкт відповідності:

import re

txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) #це надрукує об’єкт
Спробуйте самі »

Об’єкт Match має властивості та методи, які використовуються для отримання інформації про пошук і результат:

.span() повертає кортеж, що містить початкову та кінцеву позиції збігу.
.string повертає рядок, переданий у функцію
.group() повертає частину рядка, де був збіг.

Приклад

Надрукуйте позицію (початкову та кінцеву позиції) першого збігу.

Регулярний вираз шукає будь-які слова, які починаються з верхнього регістру "S":

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
Спробуйте самі »

Приклад

Надрукувати рядок, переданий у функцію:

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
Спробуйте самі »

Приклад

Надрукуйте частину рядка, де було збіг.

Регулярний вираз шукає будь-які слова, які починаються з верхнього регістру "S":

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
Спробуйте самі »

Примітка: Якщо відповідності немає, замість об’єкта відповідності буде повернено значення None.