Чтобы заменить строку в Python с помощью регулярного выражения (регулярного выражения), мы можем использовать метод регулярного выражения sub (). Если вы используете метод str.replace (), новая строка будет заменена, если она полностью соответствует старой строке.
Если вы хотите заменить строку, которая соответствует регулярному выражению, вместо идеального match, используйте метод sub () модуля re.
Python regex sub ()
Python re.sub ( ) в модуле re можно использовать для замены подстрок.
Чтобы использовать метод sub (), сначала мы должны импортировать re , а затем мы можем использовать его метод sub ().
См. синтаксис метод re.sub ().
Синтаксис
re.sub (pattern, repl, string, count = 0, flags = 0)
См. следующий код.
import restr = 'aaa @ gmail.com'print (re.sub ('[az] * @', 'ApD @', str))
В приведенном выше примере мы пытаемся заменить только строчные буквы от a до z перед символом @.
См. вывод.
ApD@gmail.com e>Из выходных данных мы видим, что мы успешно обновили адреса электронной почты.
Укажите количество
В методе sub () регулярного выражения Python мы можем передать параметр count.Он предлагает компилятору не заменять больше, чем значение count.
import restr = 'aaa@gmail.com'print (re.sub (' [az] * @ ',' ApD @ ', str, 2))Вывод
ApD@gmail.com ApD@hotmail.com ccc@apple.comИз выходных данных вы можете видеть, что он заменил только два адреса электронной почты, а последний адрес остался прежним.
Замена нескольких подстрок одной и той же строкой
Вы можете заключить строку в [], чтобы соответствовать любому одиночному символу в ней. Его можно использовать для замены нескольких разных символов одной и той же строкой.
import restr ='aaa@gmail.com bbb@hotmail.com ccc@apple.com'print (re.sub ( '[az] * @', 'info @', str))Вывод
info@gmail.com info @ hotmail.com info@apple.comВы можете видеть, что он заменяет одну и ту же строку несколькими подстроками.
If | ограничивает шаблоны, соответствует любому шаблону. Кроме того, можно использовать специальные символы регулярного выражения для каждого шаблона, но это нормально, даже если обычная строка указана как есть.
Ее можно использовать для замены нескольких различных строки с той же строкой.
import restr ='aaa@gmail.com bbb@hotmail.com ccc@apple.com'print (re.sub ('gmail | hotmail | apple', ' appdividend ', str))В приведенном выше коде у нас есть строка, состоящая из трех подстрок.
Теперь мы заменяем любую из трех подстрок на прибавить. Если он все найдет, то заменит все; если он найдет два совпадения, он заменит две подстроки. Если он найдет одно совпадение, он заменит одну подстроку.
Вывод
aaa@appdividend.com bbb @ appdividend. com ccc@appdividend.comВы можете видеть, что вся подстрока заменена на appdividend.
Давайте посмотрим сценарий, в котором соответствует только один шаблон.
import restr ='aaa@gmail.com bbb@amazon.com ccc@walmart.com'print (re.sub ('gmail | hotmail | apple', 'appdividend', str))
aaa@appdividend.com bbb@amazon.com ccc@walmart.comВы можете убедитесь, что bbb@amazon.com и ccc@walmart.com не изменились.
Только aaa@gmail.com заменяется на aaa@appdividend.com.
Заменить, используя совпавшую часть
Чтобы заменить подстроку, используя совпадающую часть, вы можете использовать строку, которая соответствует части, заключенной в (), в новой строке. См. Следующий код.
import restr ='aaa@gmail.com bbb@amazon.com ccc@walmart.com'print (re.sub ('([az] *) @', ' 1 19- @', str))Вывод
19-@gmail.com 19- @ amazon. com 19-@walmart.com1 соответствует части, которая соответствует (). Если есть несколько (), используйте их как 2, 3…
Важно экранировать like \ 1, если это обычная строка, окруженная символом «или», но если это необработанная строка с r в начале, например r », вы можете написать 1.
Заменить строку позицией с помощью фрагмента
Не существует метода для указания позиции и замены путем деления на срез и объединения их с произвольной строкой, можно создать новую строку, в которой указанная позиция заменяется.
import restr = 'albertodelrio'print (str [: 4] +' HANAYA '+ str [7:])Вывод
albeHANAYAdelrioВ приведенном выше примере кода вы можете видеть, что мы добавили подстроку между индексом строки с 4 по 7.
Заключение
В этом руководстве мы увидели, как заменить строку в Python с помощью регулярных выражений. Сначала мы импортировали модуль re, а затем мы использовали метод re.sub () для замены одной строки, нескольких строк, сопоставленной строки и замены строки ее положением с помощью среза.
Наконец, пример замены регулярного выражения Python завершен.
См. Также
Регулярные выражения Python
Python String replace ()
Python String rstrip ()
Python String strip
Python f-Strings