Python Regex Replace and Replace All — re.sub()
В этой статье вы узнаете, как использовать регулярные выражения для выполнения операций поиска и замены строк в Python.
Регулярное выражение Python предлагает sub()
subn()
методов для поиска и замены шаблонов в строке. Используя эти методы, мы можем заменить одно или несколько вхождений шаблона регулярного выражения в целевой строке замещающей строкой.
Прочитав эту статью, вы сможете выполнить следующие 9 операций.0009 замена регулярных выражений операций в Python.
Operation | Description |
---|---|
re.sub(pattern, replacement, string) | Find and replaces all occurrences of pattern with replacement |
re .sub(шаблон, замена, строка, количество=1) | Найти и заменить только первых вхождений шаблона с заменой |
RE. SUB (шаблон, замена, строка, count = n) | Найти и заменяет первые N . заменить операции Прежде чем двигаться дальше, давайте посмотрим на синтаксис метода Содержание
Как использовать метод re.sub() Чтобы понять, как использовать Синтаксис re.sub() re. sub(шаблон, замена, строка[ количество, флаги]) Шаблон регулярного выражения, замена и целевая строка являются обязательными аргументами. Количество и флаги являются необязательными.
Возвращаемое значение Возвращает строку , полученную путем замены вхождений шаблона в строке строкой замены. Если шаблон не найден, строка возвращается без изменений. Теперь давайте проверим это. Пример регулярного выражения для замены всех пробелов символом подчеркивания Теперь давайте посмотрим, как использовать
Давайте сначала рассмотрим первый сценарий. Шаблон для замены : В этом примере мы будем использовать Предположим, у вас есть следующая строка, и вы хотите заменить все пробелы символом подчеркивания . \s+», «», target_str) # Строка после замены печать (res_str) # Вывод ‘Джесса знает, что такое тестирование и машинное обучение.’ 9\s+|\s+$», «», target_str) # Строка после замены печать (res_str) # Вывод ‘Джесса знает, что такое тестирование и машинное обучение’ Замена нескольких пробелов одним пробелом с помощью регулярного выраженияimport re target_str = "Джесса разбирается в тестировании и машинном обучении\t\n" # \s+ для соответствия всем пробелам # заменить их, используя один пробел " " res_str = re.sub(r"\s+", " ", target_str) # строка после замены печать (res_str) # Вывод «Джесса знает, что такое тестирование и машинное обучение» Ограничение максимального количества заменяемых вхождений шаблона Как я уже говорил, аргумент Заменяет только первые вхождения шаблона Установив Заменяет n вхождений шаблона Установите значение счетчика на количество замен, которые вы хотите выполнить. Теперь давайте посмотрим на пример. Пример импорт # исходная строка target_str = "Джесса разбирается в тестировании и машинном обучении" # заменить только первое вхождение res_str = re.sub(r"\s", "-", target_str, count=1) # Строка после замены печать (res_str) # Вывод 'Джесса знает тестирование и машинное обучение' # заменить три вхождения res_str = re.sub(r"\s", "-", target_str, count=3) печать (res_str) # Вывод 'Джесса-знает-тестирование-и-машинное-обучение' Функция замены регулярного выраженияМы видели, как найти и заменить шаблон регулярного выражения фиксированной строкой в предыдущем примере. В этом примере мы видим, как заменить шаблон выводом функции . Например, вы хотите заменить все прописные буквы на строчные. Для этого нам нужны следующие две вещи:
Шаблон для замены : Этот шаблон будет соответствовать любым прописным буквам в целевой строке. функция замены Вы можете передать функцию Если замена является функцией, она вызывается для каждого неперекрывающегося экземпляра шаблона. Функция принимает один аргумент объекта соответствия и возвращает строку замены 9. Итак, в нашем случае мы сделаем следующее
Пример : импорт повторно # функция замены для преобразования прописной буквы в строчную защита convert_to_lower(match_obj): если match_obj.group() не равно None: вернуть match_obj.group().lower() # Исходная строка str = "Эмма ЛЮБИТ АНАНАСОВЫЙ ДЕсер и КОКОСОВОЕ мороженое" # передать функцию замены в re.sub() res_str = re.sub(r"[A-Z]", convert_to_lower, str) # Строка после замены печать (res_str) # Вывод 'Эмма любит ананасовый десерт и кокосовое мороженое' Регулярное выражение заменяет группу/несколько шаблонов регулярных выраженийМы видели, как найти и заменить один шаблон регулярного выражения в предыдущих примерах. Чтобы понять это, возьмем пример следующей строки Здесь мы хотим найти и заменить два разных шаблона одновременно. Мы хотим заменить каждую пробел и дефис(-) с запятой (,) внутри целевой строки. Для этого мы должны сначала написать два шаблона регулярных выражений.
# Исходная строка
student_names = «Эмма-Келли Джесса Джой Скотт-Джо Джерри»
# заменить два шаблона одновременно
# используйте ИЛИ (|) для разделения двух шаблонов
res = re.sub(r»(\s)|(-)», «,», student_names)
печать (разрешение)
# Вывод ‘Эмма, Келли, Джесса, Джой, Скотт, Джо, Джерри’ Чтобы понять это, возьмем пример следующей строки Приведенная выше строка содержит комбинацию слов в верхнем и нижнем регистре. . Здесь мы хотим сопоставить и заменить два разных шаблона двумя разными заменами. Итак, мы сначала захватим две группы, а затем заменим каждую группу функцией замены. Если вы не знаете функцию замены, пожалуйста, прочитайте ее здесь. Группа 1 : ([A-Z]+) Группа 2 : ([a-z]+) Примечание : Всякий раз , когда вы хотите захватить группы , всегда записывайте их в скобках Пример : Метод Метод Давайте проверим это на том же примере, что и раньше, только заменив метод. Пример Примечание : Примечание: я ничего не менял в шаблоне регулярного выражения, и результирующая строка та же самая, только на этот раз она включается в кортеж как первый элемент этого кортежа. Затем после запятой у нас есть количество сделанных замен, а это три. Мы также можем использовать аргумент count метода Итак, давайте проверим это. Пример В этом руководстве вы узнаете, как использовать регулярное выражение (или регулярное выражение) для поиска и замены строк в Python. В Python есть встроенный модуль re, который помогает в поиске и замене. Чтобы использовать re, нам нужно импортировать модуль в начале нашего кода. Теперь мы узнаем об операции поиска и замены с использованием регулярных выражений. Метод регулярного выражения ищет строку, а затем заменяет ее другим значением. Для этого используется функция Python re.sub() в модуле re. Прежде всего, давайте разберемся, что означают все эти параметры: Мы можем использовать регулярное выражение для одновременной замены нескольких шаблонов с помощью регулярного выражения. Это можно легко сделать, используя следующий синтаксис. Теперь, если вы когда-нибудь захотите заменить несколько шаблонов, но с разными заменами, тогда также можно использовать регулярное выражение. Это можно сделать с небольшой модификацией, которую вы можете увидеть в следующем примере. В этом примере строка содержит символы верхнего и нижнего регистра, которые нам нужно заменить. Нам нужно заменить верхний регистр на нижний и наоборот. Для замены строки в Python используется метод regex sub(). Это встроенный метод Python в модуле re, который возвращает замененную строку. Не забудьте импортировать модуль re. Этот метод ищет шаблон в строке, а затем заменяет его новым заданным выражением. |