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