Krajta

Výměna řetězce v Pythonu pomocí vzoru

Výměna řetězce v Pythonu pomocí vzoru
Jakákoli data řetězce lze v Pythonu nahradit jiným řetězcem pomocí nahradit () metoda. Pokud ale chcete nahradit jakoukoli část řetězce odpovídajícím konkrétním vzorem, musíte použít regulární výraz. Používá se k vyhledávání konkrétního vzoru v konkrétní hodnotě řetězce a řetězec bude nahrazen jiným řetězcem, pokud bude nalezena shoda. Python používá 're' modul pro použití vzoru regulárního výrazu ve skriptu pro hledání nebo shodu nebo nahrazení. Používání vzorů regulárních výrazů pro nahrazení řetězců je o něco pomalejší než u běžné metody replace (), ale mnoho komplikovaných vyhledávání a nahrazení lze snadno provést pomocí vzoru. Řetězec můžete nahradit různými způsoby pomocí vzoru v Pythonu. V tomto kurzu jsou uvedena některá běžná použití vzoru k nahrazení řetězce. Spyder3 editor se zde používá k psaní a spouštění skriptu.

Seznam metaznaků:

Před použitím vzoru k nahrazení řetězce musíte znát způsob psaní vzoru regulárního výrazu. Jakoukoli hodnotu řetězce můžete použít jako vzor pro přesnou shodu. Ale pro konkrétní vyhledávání musíte napsat vzor regulárního výrazu pomocí metaznaků. Seznam nejpoužívanějších metaznaků pro psaní vzorů je uveden níže s významem.

    Charakter  Popis
    .  Slouží k přiřazení libovolného jednoho znaku kromě nového řádku.
    ^  Slouží k přiřazení libovolného znaku nebo řetězce na začátku znaku

tětiva.

    $  Slouží k přiřazení libovolného znaku nebo řetězce na konci řetězce.
    +  Používá se k porovnání jednoho nebo více výskytů vzoru.
    ?  Slouží k přiřazení nule nebo jednomu výskytu vzoru.
   ()  Používá se pro seskupování vzorů.
   Používá se k párování na základě dolní nebo horní nebo obou dolních a horních

limity.

   []  Používá se k párování znaků na základě daného rozsahu.
   |  Používá se k porovnávání vzorů založených na logice OR.
   \  Používá se k definování konkrétních znaků nebo jiných znaků nebo číslic nebo

bez číslic.

Nahradit metodu:

sub() metoda 're' modul se používá v Pythonu k nahrazení řetězce.

Syntax:

sub (vzor, ​​nahradit, řetězec, počet = 0, příznaky = 0)

Tady vzor, nahradit a tětiva jsou povinné argumenty. Pokud vzor je uzavřeno s jakoukoli částí souboru tětiva pak nahradí část hodnotou výměna argument. Další dva argumenty jsou volitelné. Některá použití výše zmíněných metaznaků s metodou sub () jsou uvedena v následujících příkladech nahrazení řetězců.

Příklad 1: Nahraďte řetězec přesnou shodou

Pokud znáte přesnou hodnotu řetězce, kterou chcete prohledat v hlavním řetězci, můžete použít hodnotu vyhledávacího řetězce jako vzor v sub() metoda. Vytvořte soubor pythonu s následujícím skriptem. Hodnota vyhledávacího řetězce je zde „deštivá“ a hodnota nahrazujícího řetězce je „slunečná“.

#!/ usr / bin / env python3
# Importujte regex modul
import re
# Definujte řetězec
orgStr = "Je deštivý den"
# Vyměňte řetězec
repStr = re.sub ("deštivé", "slunečno", orgStr)
# Vytiskněte původní řetězec
print ("Původní text:", orgStr)
# Vytiskněte nahrazený řetězec
print ("Nahrazený text:", repStr)

Výstup:

Výstup je zobrazen na pravé straně obrázku.

Příklad 2: Na začátku vyhledejte a nahraďte řetězec

Vytvořte soubor pythonu s následujícím skriptem, abyste věděli, jak se používá '^' ve vzoru regulárního výrazu. Tady, '^ [A-Za-z] + ' se používá jako vyhledávací vzor. Prohledá všechny abecední znaky od A na Z a A na z na začátku textu a nahraďte jej prázdnou hodnotou. Nahrazený řetězec bude vytištěn velkými písmeny pro horní() metoda.

#!/ usr / bin / env python3
# Importujte regex modul
import re
# Vezměte řetězec
originalText = input ("Zadejte text \ n")
# Vyměňte řetězec podle vzoru
vyměněný text = re.sub ('^ [A-Za-z] +', ", originalText).horní()
# Vytiskněte nahrazený řetězec
print ("Nahrazený text:", nahradilText)

Výstup:

Výstup je zobrazen na pravé straně obrázku. Tady, „Dobrý den, vítejte na linuxhint“ je bráno jako vstup a 'Ahoj' slovo je nahrazeno " pro vzor.

Příklad 3: Na konci vyhledejte a nahraďte řetězec

Vytvořte soubor pythonu s následujícím skriptem, abyste věděli o použití '$ ' symbol ve vzoru regulárního výrazu. Tady, '[a-z0-9] + $'se ve skriptu používá jako vzor. Prohledá všechny malé abecedy a číslice na konci textu a pokud vrátí hodnotu true, odpovídající část bude nahrazena řetězcem, 'com.bd''.

#!/ usr / bin / env python3
# Importujte regex modul
import re
# Vezměte řetězec
originalText = input ("Zadejte adresu URL \ n")
# Vyměňte řetězec podle vzoru
vyměněný text = re.sub ('[a-z0-9] + $', 'com.bd ', originalText)
# Vytiskněte nahrazený řetězec
print ("Nahrazený text:", nahradilText)

Výstup:

Výstup je zobrazen na pravé straně obrázku. Zde 'https: // www.Google.com 'je bráno jako vstupní text a po nahrazení,' https: // www.Google.com.bd 'se vytiskne jako výstup.

Příklad-4: Vyhledejte a nahraďte konkrétní část řetězce

Vytvořte soubor pythonu s následujícím skriptem, který vyhledá a nahradí část textu v místě, kde se vzor shoduje. Zde je seznam e-mailových adres přiřazen jako text do pojmenované proměnné e-maily. '@ [a-z]' se používá vzor pro vyhledávání. Prohledá všechny podřetězce začínající malými abecedami následovanými '@symbol. Pokud se nějaký podřetězec shoduje, nahradí tento podřetězec znakem@linuxhint''.

#!/ usr / bin / env python3
# Importujte regex modul
import re
# Definujte řetězec
emails = '\ n [e-mail chráněn] \ n [e-mail chráněn] \ n [e-mail chráněn]'
# Nahraďte konkrétní část řetězce podle vzoru
vyměněný text = re.sub ('@ [a-z] *', '@linuxhint', e-maily)
# Vytiskněte původní řetězec
tisk ("Původní text:", e-maily)
# Vytiskněte nahrazený řetězec
print ("\ nNahrazený text:", nahradilText)

Výstup:

Výstup je zobrazen na pravé straně obrázku. Zde je každá doménová část e-mailové adresy přiřazená v textu nahrazena znakem „linuxhint''.

Závěr:

V tomto kurzu pro nahrazení řetězců jsou uvedena některá velmi běžná použití vzorů regulárních výrazů. V pythonu existuje mnoho dalších možností pro psaní různých typů jednoduchých a komplikovaných vzorů pro vyhledávání a nahrazování řetězce textu.

Podívejte se na video autora: zde

Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...