RegEx Python
- Предыдущая страница JSON Python
- Следующая страница PIP Python
RegEx или регулярное выражение - это последовательность символов, формирующих поисковый шаблон.
RegEx можно использовать для проверки того, содержит ли строка指定的 поисковый шаблон.
RegEx
Python предоставляет модуль под названием re
внутренний пакет, который можно использовать для обработки регулярных выражений.
импорт re
модуль:
import re
RegEx в Python
импорт re
после импорта модуля, можно начать использовать регулярные выражения:
Пример
Извлекает строку, чтобы проверить, начинается ли она с "China" и заканчивается ли на "country":
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
функции RegEx
re
модуль предоставляет набор функций, позволяющих нам извлекать строки для соответствия шаблону:
функция | Описание |
---|---|
findall | возвращает список всех совпадений |
search | возвращает объект Match, если совпадение существует в любом месте строки |
split | возвращает список строк, разделенных на части при каждом совпадении |
sub | заменяет один или несколько совпадений строкой |
метасимволы
метасимволы - это символы, имеющие специальное значение:
Символ | Описание | Пример | TIY |
---|---|---|---|
[] | группа символов | "[a-m]" | Попробуйте |
\ | демонстрирует специальную последовательность (можно также использовать для escaping специальных символов) | "\d" | Попробуйте |
. | любой символ (за исключением символа перевода строки) | "he..o" | Попробуйте |
^ | начинается | "^hello" | Попробуйте |
$ | оканчивается | "world$" | Попробуйте |
* | ноль или несколько раз | "aix*" | Попробуйте |
+ | один или несколько раз | "aix+" | Попробуйте |
{} | точное количество出现的次数 | "al{2}" | Попробуйте |
| | либо одно, либо другое | "falls|stays" | Попробуйте |
()) | Захват и группировка |
Специальные последовательности
Специальные последовательности означают \
следом за любым символом из таблицы, имеющим специальное значение:
Символ | Описание | Пример | TIY |
---|---|---|---|
\A | Возвращает совпадение, если указанный символ находится в начале строки | "\AThe" | Попробуйте |
\b | Возвращает совпадение указанного символа, который находится в начале или конце слова |
r"\bain" r"rain\b" |
Попробуйте Попробуйте |
\B | Возвращает совпадение указанного символа, который не находится в начале (или конце) слова |
r"\Bain" r"rain\B" |
Попробуйте Попробуйте |
\d | Возвращает совпадение строки, содержащей цифры (цифры 0-9) | "\d" | Попробуйте |
\D | Возвращает совпадение строки, не содержащей цифр | "\D" | Попробуйте |
\s | Возвращает совпадение строки, содержащей пробельные символы | "\s" | Попробуйте |
\S | Возвращает совпадение строки, не содержащей пробельных символов | "\S" | Попробуйте |
\w | Возвращает совпадение, в котором строка содержит любые символы алфавита (символы от A до Z, цифры от 0 до 9 и символ подчеркивания _) |
"\w" | Попробуйте |
\W | Возвращает совпадение, в котором строка не содержит никаких символов алфавита | "\W" | Попробуйте |
\Z | Возвращает совпадение, если указанный символ находится в конце строки | "Spain\Z" | Попробуйте |
Сбор (Set)
Набор (Set) — это пара фигурных скобок []
внутри группы символов, имеющих особое значение:
Набор | Описание | Попробуйте |
---|---|---|
[arn] | Возвращает совпадение, содержащее один из указанных символов (a, r или n) | Попробуйте |
[a-n] | Возвращает совпадения всех маленьких символов между a и n | Попробуйте |
[^arn] | Возвращает совпадения всех символов, кроме a, r и n | Попробуйте |
[0123] | Возвращает совпадения, содержащие любые из указанных чисел (0, 1, 2 или 3) | Попробуйте |
[0-9] | Возвращает совпадения всех чисел между 0 и 9 | Попробуйте |
[0-5][0-9] | Возвращает совпадения всех чисел между 0 и 9 | Попробуйте |
[a-zA-Z] | Возвращает совпадения всех символов между a и z, как больших, так и маленьких | Попробуйте |
[+] | В наборе, +, *, ., |, (), $, {} не имеют особого значения, поэтому [+] означает: возвращает совпадения всех символов + в строке | Попробуйте |
Функция findall()
findall()
Функция возвращает список, содержащий все совпадения.
Пример
Вывести список всех совпадений:
import re str = "China is a great country" x = re.findall("a", str) print(x)
Этот список содержит совпадения в порядке их нахождения.
Если совпадение не найдено, то возвращает пустой список:
Пример
Если совпадение не найдено, то возвращает пустой список:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
Функция search()
search()
Функция ищет совпадение в строке, и если совпадение существует, то возвращает объект Match.
Если есть несколько совпадений, то возвращает только первое совпадение:
Пример
Найти первый пробельный символ в строке:
import re str = "China is a great country" x = re.search("\s", str) print("Позиция первого пробельного символа: ", x.start())
Если совпадение не найдено, то возвращается значение None
:
Пример
Выполните поиск без возврата совпадений:
import re str = "China is a great country" x = re.search("USA", str) print(x)
Функция split()
split()
Функция возвращает список, в котором строка разрезается каждый раз при совпадении:
Пример
Разделите строку по каждому пробельному символу:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Вы можете определить maxsplit
Параметр для управления количеством разделений:
Пример
Разделите строку только в первый раз:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
Функция sub()
sub()
Функция заменяет совпадение на выбранный текст:
Пример
Замените каждый пробельный символ числом 9:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
Вы можете определить count
Параметр для управления количеством замен:
Пример
Заменить первые два occurrences:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Объект Match
Объект Match - это объект, содержащий информацию о поиске и результатах.
Комментарий:Возвратное значение, если нет соответствий None
вместо объекта Match.
Пример
Выполнение возвращает объект Match поисковой операции:
import re str = "China is a great country" x = re.search("a", str) print(x) # будет напечатан объект
Объект Match предоставляет атрибуты и методы для получения информации о поиске и результатах:
span()
Возвращаемый кортеж содержит начало и конец соответствия.string
Возврат传入ной строки функцииgroup()
Возврат части строки, соответствующей шаблону
Пример
Печать位置的 первого соответствия (начало и конец)
Поиск регулярного выражения, начинающегося с заглавной "C".
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Пример
Печать传入ной строки функции:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Пример
Печать части строки, соответствующей шаблону.
Поиск регулярного выражения, начинающегося с заглавной "C".
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Комментарий:Возвратное значение, если нет соответствий None
вместо объекта Match.
- Предыдущая страница JSON Python
- Следующая страница PIP Python