Python

Заміна рядка Python за допомогою шаблону

Заміна рядка Python за допомогою шаблону
Будь-які рядкові дані можна замінити іншим рядком у Python за допомогою the replace () метод. Але якщо ви хочете замінити будь-яку частину рядка, відповідаючи певному шаблону, тоді вам доведеться використовувати регулярний вираз. Він використовується для пошуку за певним шаблоном у певному значенні рядка, і рядок буде замінено іншим рядком, якщо знайдено відповідність. Python використовує "знову" модуль для використання шаблону регулярних виразів у скрипті для пошуку, узгодження або заміни. Використання шаблонів регулярних виразів для заміни рядків трохи повільніше, ніж звичайний метод replace (), але багато складних пошуків та заміни можна зробити легко, використовуючи шаблон. Ви можете замінити рядок різними способами, використовуючи шаблон у Python. Деякі поширені способи використання шаблону для заміни рядка показані в цьому посібнику. Spyder3 тут використовується редактор для написання та запуску сценарію.

Список метасимволів:

Перш ніж використовувати шаблон для заміни рядка, ви повинні знати спосіб написання шаблону регулярного виразу. Ви можете використовувати будь-яке значення рядка як шаблон для точного збігу. Але для конкретного пошуку вам потрібно написати шаблон регулярного виразу, використовуючи метасимвол. Список найбільш часто використовуваних метасимволів для написання шаблонів подано нижче зі значенням.

    Характер  Опис
    .  Він використовується для відповідності будь-якому окремому символу, крім нового рядка.
    ^  Він використовується для відповідності будь-якому символу або рядку на початку

рядок.

    $  Він використовується для відповідності будь-якому символу або рядку в кінці рядка.
    +  Він використовується для узгодження одного або декількох випадків шаблону.
    ?  Він використовується для відповідності нулю або одному входження шаблону.
   ()  Він використовується для групування шаблонів.
   Він використовується для відповідності на основі нижнього або верхнього або як нижнього, так і верхнього

межі.

   []  Він використовується для узгодження символів на основі заданого діапазону.
   |  Він використовується для узгодження шаблонів, заснованих на логіці АБО.
   \  Він використовується для визначення конкретних символів або несимволів, або цифр або

нецифрові.

Метод заміни:

під () метод "знову" модуль використовується в Python для заміни рядка.

Синтаксис:

sub (шаблон, заміна, рядок, count = 0, прапори = 0)

Ось візерунок, замінити і рядок є обов’язковими аргументами. Якщо візерунок відповідає будь-якій частині рядок тоді він замінить деталь на значення замінивши аргумент. Інші два аргументи необов’язкові. Деякі способи використання вищезазначених метасимволів із методом sub () показані в наступних прикладах заміни рядків.

Приклад-1: Замініть рядок на точну відповідність

Якщо ви знаєте точне значення рядка, яке потрібно шукати в основному рядку, тоді ви можете використовувати значення рядка пошуку як шаблон у під () метод. Створіть файл python за допомогою наступного сценарію. Тут значення рядка пошуку є "дощовим", а значення рядка, що замінює - "сонячним".

#!/ usr / bin / env python3
# Імпортувати модуль регулярних виразів
імпортувати повторно
# Визначте рядок
orgStr = "Зараз дощовий день"
# Замініть рядок
repStr = re.sub ("дощовий", "сонячний", orgStr)
# Роздрукуйте оригінальний рядок
print ("Оригінальний текст:", orgStr)
# Друк заміненого рядка
print ("Замінений текст:", repStr)

Вихід:

Вихідні дані відображаються на правій стороні зображення.

Приклад-2: Пошук і заміна рядка на початку

Створіть файл python з наступним сценарієм, щоб знати, як його використовувати '^' у шаблоні регулярних виразів. Ось, '^ [A-Za-z] + ' використовується як шаблон пошуку. Він буде шукати всі алфавітні символи з A до Z і a до z на початку тексту та замініть його порожнім значенням. Замінений рядок буде надруковано великими літерами для верхній () метод.

#!/ usr / bin / env python3
# Імпортувати модуль регулярних виразів
імпортувати повторно
# Візьміть рядок введення
originalText = input ("Ввести текст \ n")
# Замініть рядок на основі візерунка
replaceText = re.sub ('^ [A-Za-z] +', ", originalText).верхній ()
# Друк заміненого рядка
print ("Замінений текст:", replaceText)

Вихід:

Вихідні дані відображаються на правій стороні зображення. Ось, 'Привіт, ласкаво просимо до linuxhint' приймається як вхід і 'Здравствуйте' слово замінено на " для візерунка.

Приклад-3: Пошук і заміна рядка в кінці

Створіть файл python з таким сценарієм, щоб знати, як використовувати '$ ' символ у шаблоні регулярних виразів. Ось, '[a-z0-9] + $'використовується як шаблон у сценарії. Він здійснить пошук у всіх малих алфавітах і цифрах в кінці тексту, і якщо поверне true, відповідна частина буде замінена рядком, 'ком.bd'.

#!/ usr / bin / env python3
# Імпортувати модуль регулярних виразів
імпортувати повторно
# Візьміть рядок введення
originalText = input ("Введіть адресу url \ n")
# Замініть рядок на основі візерунка
replaceText = re.sub ('[a-z0-9] + $', 'com.bd ', originalText)
# Друк заміненого рядка
print ("Замінений текст:", replaceText)

Вихід:

Вихідні дані відображаються у правій частині зображення. Тут, 'https: // www.Google.com 'береться як вхідний текст, а після заміни' https: // www.Google.ком.bd 'друкується як вихід.

Приклад-4: Пошук і заміна конкретної частини рядка

Створіть файл python із наведеним нижче сценарієм для пошуку та заміни частини тексту в місці збігу шаблону. Тут список електронних адрес присвоюється як текст змінній з іменем електронні листи. '@ [a-z]' використовується шаблон для пошуку. Буде здійснено пошук у будь-якому підрядку, який починається з малих алфавітів, а потім - '@'символ. Якщо який-небудь підрядок збігається, він замінить цей підрядок на '@linuxhint'.

#!/ usr / bin / env python3
# Імпортувати модуль регулярних виразів
імпортувати повторно
# Визначте рядок
електронна пошта = '\ n [захищена електронною поштою] \ n [захищена електронною поштою] \ n [захищена електронною поштою]'
# Замініть конкретну частину рядка на основі шаблону
replaceText = re.sub ('@ [a-z] *', '@linuxhint', електронні листи)
# Роздрукуйте оригінальний рядок
print ("Оригінальний текст:", електронні листи)
# Друк заміненого рядка
print ("\ nЗамінений текст:", replaceText)

Вихід:

Вихідні дані відображаються на правій стороні зображення. Тут кожна доменна частина адреси електронної пошти, призначена в тексті, замінюється на 'linuxhint'.

Висновок:

Деякі дуже поширені способи використання регулярних виразів показані в цьому посібнику для заміни рядків. У python існує багато інших варіантів написання різних типів простих і складних шаблонів для пошуку та заміни рядка тексту.

Дивіться авторське відео: тут

Топ 5 карт для захоплення ігор
Ми всі бачили і любили потокові ігри на YouTube. PewDiePie, Jakesepticye та Markiplier - лише деякі з найкращих геймерів, які заробили мільйони, заван...
Як розробити гру на Linux
Десять років тому не так багато користувачів Linux передбачали, що їх улюблена операційна система колись стане популярною ігровою платформою для комер...
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...