Функция regex Split() в Python с примерами
- Что такое функция regex Split() в Python?
- Примеры функции regex Split() в Python
- 1) Разделение слов в предложении
- 2) Использование функции Split() с аргументом maxsplit
- 3) Использование с группой захвата
Что такое функция regex Split() в Python?
Встроенный модуль re предоставляет вам функцию Split(), которая разбивает строку по совпадениям с регулярным выражением.
Функция Split() имеет следующий синтаксис:
split(pattern, string, maxsplit=0, flags=0)
В этом синтаксисе:
- pattern — регулярное выражение, совпадения которого будут использоваться в качестве разделителей для разделения.
- string — входная строка для разделения.
- maxsplit определяет максимальное количество разбиений. Обычно, если maxsplit равен единице, результирующий список будет состоять из двух элементов. Если maxsplit равен 2, результирующий список будет содержать три элемента и так далее.
- Параметр flags является необязательным и по умолчанию равен нулю. Принимает один или несколько флагов регулярных выражений. Параметр flags изменяет способ соответствия механизма регулярных выражений шаблону.
Функция Split() возвращает список подстрок, разделенных совпадениями шаблона в строке.
Если шаблон содержит одну или несколько групп захвата, функция Split() вернет текст всех групп как элементы результирующего списка.
Если шаблон содержит группу захвата, соответствующую началу строки, функция Split() вернет результирующий список, первый элемент которого представляет собой пустую строку. Эта логика одинакова для конца строки.
Примеры функции regex Split() в Python
Давайте рассмотрим несколько примеров использования функции регулярного выражения Split().
1) Разделение слов в предложении
В следующем примере используется функция Split() для разделения слов в предложении:
import re s = 'A! B. C D' pattern = r'\W+' l = re.split(pattern, s) print(l)
В этом примере \W+ является обратным набору символов слова, который соответствует одному или нескольким символам, не являющимся символами слова.
Выход:
['A', 'B', 'C', 'D']
2) Использование функции Split() с аргументом maxsplit
В следующем примере используется функция Split(), которая разбивает строку на два символа, не являющихся словами:
import re s = 'A! B. C D' pattern = r'\W+' l = re.split(pattern, s, 2) print(l)
Выход:
['A', 'B', 'C D']
Поскольку мы разбили строку на два разделения, результирующий список будет содержать три элемента. Обратите внимание, что функция Split() возвращает остаток строки в качестве последнего элемента результирующего списка.
3) Использование с группой захвата
- В следующем примере используется функция Split(), которая разбивает строку по шаблону \W+, содержащую группу захвата:
import re s = 'A! B. C D' pattern = r'(\W+)' l = re.split(pattern, s, 2) print(l)
Выход:
['A', '! ', 'B', '. ', 'C D']
В этом примере функция Split() также возвращает текст группы в результирующем списке.
- В следующем примере используется функция Split(), где разделитель содержит группу захвата, соответствующую началу строки:
import re s = '...A! B. C D' pattern = r'\W+' l = re.split(pattern, s) print(l)
В этом случае функция Split() возвращает список, первым элементом которого является пустая строка:
['', 'A', 'B', 'C', 'D']
Аналогично, если разделитель содержит группы захвата и соответствует концу строки, последний элемент результирующего списка будет пустой строкой:
import re s = 'A! B. C D...' pattern = r'\W+' l = re.split(pattern, s) print(l)
Выход:
['A', 'B', 'C', 'D', '']