Příklady Python Regex

Priklady Python Regex



Úplná forma regulárního výrazu je regulární výraz. Je to důležitá vlastnost každého programovacího jazyka. Je to vzor řetězce, který se používá ke shodě, hledání nebo nahrazení řetězců v hodnotě řetězce. Vzor regulárního výrazu lze použít ve skriptu Python pomocí modulu „re“ v Pythonu. Tento modul má mnoho typů funkcí pro provádění různých operací s řetězci. Různé metaznaky a speciální sekvence se používají k definování vzorů regulárních výrazů pro hledání nebo nahrazování úkolů. Účely použití některých běžně používaných metaznaků, speciálních sekvencí a metod regulárních výrazů ve skriptu Python jsou uvedeny v tomto tutoriálu.

Některé běžně používané metaznaky v regulárním výrazu:









Postavy Účel
'+' Používá se ke shodě jednoho nebo více výskytů určitého znaku v řetězci.
'*' Používá se ke shodě nula nebo více výskytů určitého znaku v řetězci.
'?' Používá se ke shodě nula nebo jednoho výskytu určitého znaku v řetězci.
'^' Používá se pro shodu konkrétního znaku nebo řetězce na začátku řetězce.
'$' Používá se k přiřazení konkrétního znaku nebo řetězce na konci řetězce.
'|' Používá se ke spárování libovolného z více řetězců v řetězci. Funguje to jako logika OR.
„[]“ Používá se pro shodu řady znaků.
'{}' Používá se k přiřazení určitého počtu znaků.



Některé běžně používané speciální sekvence v regulárním výrazu:





Sekvence Účel
'\A' Používá se ke shodě s konkrétním znakem na začátku řetězce. Funguje jako znak „^“.
„\b“, „\B“ „\b“ se používá pro shodu řetězce, který obsahuje konkrétní znak nebo slovo na začátku nebo na konci řetězce. „\B“ funguje opačně než „\b“.
„\d“, „\D“ „\d“ se používá pro shodu desetinného čísla v řetězci, který je podobný „[0-9]“. „\D“ funguje opačně než „\d“.
„\s“, „\S“ „\s“ se používá ke shodě mezi mezerami v řetězci, které jsou podobné „[\n\t\r\v]“. „\S“ funguje opačně než „\s“.
„\w“, „\W“ „\w“ se používá ke shodě abecedních a číselných znaků v řetězci. „\W“ funguje opačně než „\w“.
'\S' Používá se ke shodě s konkrétním znakem na konci řetězce. Funguje jako znak „$“.

Příklad 1: Porovnejte řetězec pomocí funkce Match().

Funkce match() se používá k porovnání vzoru regulárního výrazu na začátku řetězce. Syntaxe této funkce je dána následovně:



Syntax:

odveta ( vzor, ​​provázek, vlajky = 0 )

Zde se první argument používá k definování vzoru regulárního výrazu. Druhý argument se používá k definování hlavního řetězce. Třetí argument je volitelný a používá se k definování různých typů příznaků.

Vytvořte soubor Python pomocí následujícího skriptu, který odpovídá vzoru regulárního výrazu s definovaným řetězcem pomocí funkce match(). Nejprve se ke spárování použije definovaný vzor regulárních výrazů. Dále je hledané slovo převzato od uživatele a je použito jako vzor regulárního výrazu pro shodu s hodnotou řetězce. Pokud je nalezena shoda, vytiskne se hledané slovo. V opačném případě se vytiskne řetězec „Nebyla nalezena žádná odpovídající hodnota“.

#Importujte potřebný modul
import re

#Definujte funkci pro tisk shodného výsledku
def matchString ( ) :
#Zkontrolujte návratovou hodnotu funkce match().
-li spolu s ! = Žádný:
tisk ( ''' + mat.skupina ( ) + '' se nachází v '' + strValue + ''' )
jiný:
tisk ( 'Nebyla nalezena žádná odpovídající hodnota.' )

# Definujte hodnotu řetězce
strValue = 'První dovnitř, první ven.'
#Přiřaďte řetězec podle vzoru
mat = re.match ( '^První' , strValue )
#Call funkce pro tisk výsledku zápasu
matchString ( )

#Vezmi hledaný řetězec
inValue = vstup ( 'Zadejte hledanou hodnotu: ' )
mat = re.match ( inValue + , strValue )
#Call funkce pro tisk výsledku zápasu
matchString ( )

Pro „první“ vstupní hodnotu se zobrazí následující výstup:

Příklad 2: Najděte řetězec pomocí funkce Findall().

Funkce findall() se používá k vrácení všech odpovídajících slov, která se nacházejí v hlavním řetězci jako n-tice.

Syntax:

re.findall ( vzor, ​​provázek, vlajky = 0 )

Zde se první argument používá k definování vzoru regulárního výrazu. Druhý argument se používá k definování hlavního řetězce. Třetí argument je volitelný a používá se k definování různých typů příznaků.

Vytvořte soubor Python pomocí následujícího skriptu, který od uživatele převezme hodnotu hlavního řetězce a hodnotu vyhledávacího řetězce. Poté použijte hledané slovo  ve vzoru regulárního výrazu k nalezení hledaného slova v hlavním řetězci. Celkový počet shod je vytištěn na výstupu.

#Importujte potřebný modul
import re

#Vezměte hodnotu řetězce
inValue = vstup ( 'Zadejte řetězec: ' )

#Vyhledejte slovo
srcValue = vstup ( 'Zadejte hledané slovo: ' )

#Vyhledejte slovo v řetězci
srcResult = re.findall ( srcValue + '\V*' , inValue )
#Vytiskněte výsledek hledání
tisk ( 'Slovo '' + srcValue + '' se nachází v řetězci'
+ str ( jen ( srcResult ) ) + 'krát.' )

Podle výstupu se hledané slovo „jíst“ nachází dvakrát v hlavním řetězci „Jíme, abychom žili a nežijeme, abychom jedli“.

Příklad 3: Prohledejte řetězec pomocí funkce Search().

Search() je další funkce pro hledání určitého vzoru v řetězcové hodnotě. Obsahuje stejné argumenty jako funkce match() a findall(). Vytvořte soubor Python pomocí následujícího skriptu, který hledá slovo „Python“ v řetězcové hodnotě, která bude převzata od uživatele. Pokud hledané slovo ve vstupní hodnotě existuje, vytiskne se zpráva o úspěchu. V opačném případě se vytiskne chybové hlášení.

#Import re modul
import re

#Vezměte hodnotu řetězce
inValue = vstup ( 'Zadejte řetězec: ' )
#Vyhledejte konkrétní slovo v hodnotě řetězce
srcResult = re.search ( r 'Python\w*' , inValue )

#Zkontrolujte, zda bylo hledané slovo nalezeno nebo ne
-li srcResult:
tisk ( ''' + srcResult.group ( ) + '' se nachází v '' + inValue + ''' )
jiný:
tisk ( 'Hledaný řetězec nebyl nalezen.' )

Výstup:

Následující výstup se objeví, pokud je vstupní řetězec „Líbí se mi programování Pythonu“:

Následující výstup se zobrazí, pokud je vstupní řetězec „Mám rád programování PHP“:

Příklad 4: Nahraďte řetězec pomocí funkce Sub().

Funkce sub() se používá k vyhledání určitého řetězce na základě vzoru a jeho nahrazení jiným slovem. Syntaxe této funkce je dána následovně:

Syntax:

re.sub ( vzor, ​​nahradit_řetězec, hlavní_řetězec )

První argument této funkce obsahuje vzor, ​​který se používá k vyhledání konkrétního řetězce v hlavním řetězci.

Druhý argument této funkce obsahuje hodnotu řetězce „nahradit“.

Třetí argument této funkce obsahuje hlavní řetězec.

Tato funkce vrátí nahrazený řetězec, pokud v hlavním řetězci na základě prvního argumentu existuje nějaké odpovídající slovo.

Vytvořte soubor Python pomocí následujícího skriptu, který hledá dvě číslice na konci řetězce. Pokud řetězec obsahuje dvě číslice na konci, číslice jsou nahrazeny řetězcem „$50“.

#Import re modul
import re

#Definujte hlavní řetězec
strValue = 'Cena knihy je 70'

# Definujte vzor vyhledávání
vzor = '[0-9]{2}'

# Definujte hodnotu nahrazení
nahraditHodnotu = '$50'

#Vyhledejte a nahraďte řetězec na základě vzoru
modifikovaná_strValue = re.sub ( vzor, ​​nahraditValue, strValue )
#Vytiskněte původní a upravené hodnoty řetězce
tisk ( 'Původní řetězec:' + strValue )
tisk ( 'Upravený řetězec: ' + upravená_strValue )

Výstup:

Na konci hlavního řetězce jich bylo 70. Takže 70 je nahrazeno 50 $ v nahrazeném řetězci.

Příklad 5: Nahraďte řetězec pomocí funkce Subn().

Funkce subn() funguje jako funkce sub() kromě toho, že vrací výstup jako n-tici, kde první index obsahuje nahrazenou hodnotu a druhý index obsahuje celkový počet shod.

Vytvořte soubor Python pomocí následujícího skriptu, který prohledává abecedy A až L v řetězci „LinuxHint.com“ pomocí funkce subn():

#Import re modul
import re

#Definujte hlavní řetězec
strValue = 'LinuxHint.com'

# Definujte vzor vyhledávání
vzor = '[TO THE]'

# Definujte hodnotu nahrazení
nahraditHodnotu = '*'

#Vyhledejte a nahraďte řetězec na základě vzoru
upravena_strValue = re.subn ( vzor, ​​nahraditValue, strValue )
#Vytiskněte původní řetězec a výstup subn()
tisk ( 'Původní řetězec: \n ' + strValue )
tisk ( 'Výstup funkce subn(): ' )
tisk ( upravená_strValue )

Výstup:

Podle následujícího výstupu jsou znaky „L“ a „H“ nahrazeny znakem „*“.

Příklad 6: Rozdělení řetězce pomocí funkce Split().

Vytvořte soubor Python pomocí následujícího skriptu, který použil funkci split() k rozdělení hlavního řetězce na více částí na základě vzoru regulárního výrazu:

#Import re modul
import re

#Definujte hodnotu řetězce
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Definujte vzor, ​​který bude použit k rozdělení dat
vzor = '[^A-Za-z ]'
#Uložte hodnoty rozdělení do seznamu
split_result = re.split ( vzor, ​​strVal )
tisk ( 'Výstup funkce split():' )
tisk ( split_result )

Výstup:

Podle výstupu je hlavní řetězec rozdělen na tři části na základě vzoru „[^A-Za-z ]“, který je použit ve skriptu.

Závěr

Účel nejběžněji používaných metaznaků, rozsahů a vestavěných funkcí Pythonu pro vyhledávání, nahrazování a rozdělování řetězců je ukázán v tomto tutoriálu pomocí jednoduchých skriptů Pythonu.