Учебник по Python

ДОМАШНЯЯ СТРАНИЦА ПИТОН Введение в Python Python для начала Синтаксис Python Комментарии Python Переменные Python Типы данных Python Числа Python Кастинг Python Строки Python Логические значения Python Операторы Python Списки Python Кортежи Python Наборы Python Словари Python Python, если...иначе Циклы Python в то время как Python для циклов Функции Python Python лямбда Массивы Python Классы/объекты Python Наследование Питона Итераторы Python Объем Python Модули Python Даты Python Математика Python Python JSON регулярное выражение Python Картинка в картинке Python Python Попробуйте... Кроме Пользовательский ввод Python Форматирование строк Python

Работа с файлами

Обработка файлов Python Файлы чтения Python Python Запись/создание файлов Удалить файлы Python

Модули Python

Учебник по NumPy Прохождение панды Учебник по Сципи

Python Matplotlib

Введение в Matplotlib Matplotlib Начать Пилот Matplotlib Графики Matplotlib Маркеры Matplotlib Линия Matplotlib Метки Matplotlib Сетка Matplotlib Подсюжеты Matplotlib Матплотлиб Скаттер Бары Matplotlib Гистограммы Matplotlib Круговые диаграммы Matplotlib

Машинное обучение

Начиная Средняя медиана режима Среднеквадратичное отклонение Процентиль Распределение данных Нормальное распределение данных Точечная диаграмма Линейная регрессия Полиномиальная регрессия Множественная регрессия Масштаб Поезд/тест Древо решений

Python MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу Вставка MySQL Выбор MySQL MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Python MongoDB

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

Справочник по Python

Обзор Python Встроенные функции Python Строковые методы Python Методы списка Python Словарные методы Python Методы кортежей Python Методы набора Python Файловые методы Python Ключевые слова Python Исключения Python Глоссарий Python

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

Случайный модуль Модуль запросов Модуль статистики Математический модуль cМатематический модуль

Python Как

Удалить дубликаты списка Перевернуть строку Добавить два числа

Примеры Python

Примеры Python Компилятор Python Упражнения на Python Питон Викторина Сертификат Python

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


RegEx или регулярное выражение — это последовательность символов, формирующая шаблон поиска.

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


Модуль регулярных выражений

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

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

import re

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

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

Пример

Найдите строку, чтобы увидеть, начинается ли она с «The» и заканчивается на «Испания»:

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)

Функции регулярных выражений

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

Function Description
findall Returns a list containing all matches
search Returns a Match object if there is a match anywhere in the string
split Returns a list where the string has been split at each match
sub Replaces one or many matches with a string


Метасимволы

Метасимволы — это символы со специальным значением:

Character Description Example Try it
[] A set of characters "[a-m]"
\ Signals a special sequence (can also be used to escape special characters) "\d"
. Any character (except newline character) "he..o"
^ Starts with "^hello"
$ Ends with "planet$"
* Zero or more occurrences "he.*o"
+ One or more occurrences "he.+o"
? Zero or one occurrences "he.?o"
{} Exactly the specified number of occurrences "he{2}o"
| Either or "falls|stays"
() Capture and group    

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

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

Character Description Example Try it
\A Returns a match if the specified characters are at the beginning of the string "\AThe"
\b Returns a match where the specified characters are at the beginning or at the end of a word
(the "r" in the beginning is making sure that the string is being treated as a "raw string")
r"\bain"
r"ain\b"

\B Returns a match where the specified characters are present, but NOT at the beginning (or at the end) of a word
(the "r" in the beginning is making sure that the string is being treated as a "raw string")
r"\Bain"
r"ain\B"

\d Returns a match where the string contains digits (numbers from 0-9) "\d"
\D Returns a match where the string DOES NOT contain digits "\D"
\s Returns a match where the string contains a white space character "\s"
\S Returns a match where the string DOES NOT contain a white space character "\S"
\w Returns a match where the string contains any word characters (characters from a to Z, digits from 0-9, and the underscore _ character) "\w"
\W Returns a match where the string DOES NOT contain any word characters "\W"
\Z Returns a match if the specified characters are at the end of the string "Spain\Z"

Наборы

Набор — это набор символов внутри пары квадратных скобок []со специальным значением:

Set Description Try it
[arn] Returns a match where one of the specified characters (a, r, or n) are present
[a-n] Returns a match for any lower case character, alphabetically between a and n
[^arn] Returns a match for any character EXCEPT a, r, and n
[0123] Returns a match where any of the specified digits (0, 1, 2, or 3) are present
[0-9] Returns a match for any digit between 0 and 9
[0-5][0-9] Returns a match for any two-digit numbers from 00 and 59
[a-zA-Z] Returns a match for any character alphabetically between a and z, lower case OR upper case
[+] In sets, +, *, ., |, (), $,{} has no special meaning, so [+] means: return a match for any + character in the string

 

Функция 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()ищет совпадение в строке и возвращает объект Match , если совпадение есть.

Если имеется более одного совпадения, будет возвращено только первое совпадение:

Пример

Найдите первый символ пробела в строке:

import re

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

print("The first white-space character is located in position:", x.start())

Если совпадений не найдено, Noneвозвращается значение:

Пример

Выполните поиск, который не возвращает совпадений:

import re

txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)

 

Функция разделения()

Функция 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)

 

Соответствие объекту

Match Object — это объект, содержащий информацию о поиске и результате.

Примечание. Если совпадений нет, Noneбудет возвращено значение вместо объекта совпадения.

Пример

Выполните поиск, который вернет объект соответствия:

import re

txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) #this will print an object

Объект 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будет возвращено значение вместо объекта совпадения.