Maybaygiare.org

Blog Network

Python RegEx: re.zápas (), re.vyhledávání (), re.findall () s příkladem

co je regulární výraz v Pythonu?

Regulární výraz (RE) v programovacím jazyce je speciální textový řetězec používaný pro popis vyhledávacího vzoru. Je velmi užitečné pro extrahování informací z textu, jako je Kód, soubory, protokol, tabulky nebo dokonce dokumenty.

při použití regulárního výrazu Pythonu je třeba nejprve rozpoznat, že vše je v podstatě znak a píšeme vzory tak, aby odpovídaly určité posloupnosti znaků označovaných také jako řetězec. ASCII nebo latinská písmena jsou písmena, která jsou na klávesnicích a Unicode se používá k přiřazení cizího textu. Obsahuje číslice a interpunkci a všechny speciální znaky jako $#@!%, atd.

v tomto tutoriálu Python RegEx se naučíme –

  • syntaxe regulárního výrazu
  • příklad výrazu w+ a ^
  • příklad výrazu \s V re.split funkce
  • pomocí regulárních výrazových metod
  • pomocí re.zápas ()
  • hledání vzoru v textu (re.vyhledávání ())
  • pomocí re.findall pro text
  • Python Flags
  • příklad re.M nebo Víceřádkové Vlajky

například, Pythonu regulární výraz by mohl říct program, vyhledávat konkrétní text z řetězce, a pak vytisknout výsledek odpovídajícím způsobem. Výraz může zahrnovat

  • porovnávání Textu
  • Opakování
  • Větvení
  • Vzor-složení atd.

Regulární výraz nebo RegEx v Pythonu je označen jako RE (REs, regexes nebo regex pattern) jsou importovány prostřednictvím re modulu. Python podporuje regulární výraz prostřednictvím knihoven. RegEx v Pythonu podporuje různé věci, jako jsou modifikátory, identifikátory a znaky prázdného místa.

Identifikátory Modifikátory Bílé znaky Útěk nutné
\d= libovolné číslo (číslice) \d reprezentuje cifru.Např: \d{1,5} bude deklarovat číslice mezi 1,5 jako 424,444,545 atd. \n = nový řádek . + * ? $ ^ () {} | \
\D= něco, ale číslo (non-místné) + = odpovídá 1 nebo více \s= prostor
\s = prostoru (tab,mezera,nový řádek, atd.) ? = matches 0 or 1 \t =tab
\S= anything but a space * = 0 or more \e = escape
\w = letters ( Match alphanumeric character, including „_“) $ match end of a string \r = carriage return
\W =anything but letters ( Matches a non-alphanumeric character excluding „_“) ^ match start of a string \f= form feed
. = anything but letters (periods) | matches either or x/y —————–
\b = any character except for new line = range or „variance“ —————-
\. {x} = tato částka z předchozí kód —————–

Regulární Výraz(RE) Syntaxe

import re
  • „re“ modul součástí Python používá především pro řetězec vyhledávání a manipulaci
  • Také často používán pro webovou stránku „Škrábání“ (extrahovat velké množství dat z webových stránek)

začneme výraz tutoriál s této jednoduché cvičení pomocí výrazů (w+) a (^).

příklad výrazu w + a ^

  • „^“: Tento výraz odpovídá začátku řetězce
  • „w+“: Tento výraz odpovídá alfanumerický znak v řetězci

Zde se dočkáme Python RegEx Příklad toho, jak můžeme používat w+ a ^ projevu v našem kódu. Pokrýváme funkci re.findall () v Pythonu, později v tomto tutoriálu, ale na chvíli se jednoduše zaměříme na \w+ a \^ výraz.

například pro náš řetězec „guru99, vzdělávání je zábava“ pokud spustíme kód s w + a^, vydá výstup „guru99“.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.Findall (), Flags

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print(r1)

nezapomeňte, že pokud odstraníte znaménko + z w+, výstup se změní a dá pouze první znak prvního písmene, tj.

příklad výrazu \s V re.rozdělit funkce

  • „s“: Tento výraz se používá pro vytvoření prostoru v řetězci

pochopit, jak to regulárních výrazů v Pythonu funguje, začneme s jednoduchým Python RegEx Příklad rozdělit funkce. V příkladu jsme rozdělili každé slovo pomocí “ re.split “ funkce a zároveň jsme použili výraz \s, který umožňuje analyzovat každé slovo v řetězci Samostatně.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall(), Flags

při spuštění tohoto kódu vám poskytne výstup .

nyní se podívejme, co se stane, pokud odstraníte „\“ ze s. ve výstupu není žádná abeceda „s“, je to proto, že jsme odstranili “ \ „z řetězce a vyhodnotí“ s “ jako běžný znak a rozdělí slova tam, kde v řetězci najde „s“.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall(), Flags

podobně existuje řada dalších regulárních výrazů Pythonu, které můžete použít různými způsoby v Pythonu jako \d,\D,$,\., \b, atd.

zde je kompletní Kód

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print((re.split(r'\s','we are splitting the words')))print((re.split(r's','split the words')))

dále uvidíme typy metod, které se používají s regulárním výrazem v Pythonu.

Pomocí regulárního výrazu metody

„re“ balíček obsahuje několik metod, aby skutečně provádět dotazy na vstupní řetězec. Uvidíme metody re v Pythonu:

  • re.zápas ()
  • re.hledat ()
  • re.findall ()

Poznámka: Na základě regulárních výrazů nabízí Python dvě různé primitivní operace. Metoda shody kontroluje shodu pouze na začátku řetězce, zatímco vyhledávání kontroluje shodu kdekoli v řetězci.

re.zápas ()

re.zápas () funkce re v Pythonu prohledá vzor regulárního výrazu a vrátí první výskyt. Metoda Python RegEx Match kontroluje shodu pouze na začátku řetězce. Pokud je tedy v prvním řádku nalezena shoda, vrátí objekt shody. Pokud je však shoda nalezena v jiném řádku, funkce Python RegEx Match vrátí null.

zvažte například následující kód Pythonu re.zápas () funkce. Výraz „w+“ a „\W“ odpovídají slova začínající písmenem “ g „a poté, co začal s“ g “ není identifikován. Chcete-li zkontrolovat shodu pro každý prvek v seznamu nebo řetězce, spustíme forloop v tomto Pythonu re.zápas () příklad.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall (), Flags

re.vyhledávání (): Hledání vzoru v textu

re.funkce search () vyhledá vzor regulárního výrazu a vrátí první výskyt. Na rozdíl od Python re.zápas (), zkontroluje všechny řádky vstupního řetězce. Krajta re.funkce search () vrací objekt shody, když je nalezen vzor, a „null“, pokud vzor nebyl nalezen

Chcete-li použít funkci search (), musíte nejprve importovat modul Python re a poté spustit kód. Krajta re.search() funkce provede „vzor“ a „text“ skenování z naší hlavní řetězec.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall(), Flags

například zde hledáme dva doslovné řetězce „testování softwaru „“guru99“, v textovém řetězci „testování softwaru je zábava“. Pro „testování softwaru“ jsme našli shodu, a proto vrací výstup Pythonu re.hledat () příklad jako „našel shodu“, zatímco pro slovo „guru99“ jsme nemohli najít v řetězci, proto vrací výstup jako „žádná shoda“.

re.findall ()

findall () modul slouží k vyhledávání „všech“ výskytů, které odpovídají danému vzoru. Naproti tomu modul search() vrátí pouze první výskyt, který odpovídá zadanému vzoru. findall () bude iterovat přes všechny řádky souboru a vrátí všechny nepřekrývající se shody vzoru v jednom kroku.

například zde máme seznam e-mailových adres a chceme, aby všechny e-mailové adresy byly načteny ze seznamu, používáme metodu re.findall () v Pythonu. Najde všechny e-mailové adresy ze seznamu.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall(), Flags

zde je kompletní kód například re.findall ()

import relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print((z.groups())) patterns = text = 'software testing is fun?'for pattern in patterns: print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!')else: print('no match')abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print(email)

Python Flags

mnoho metod regexu Pythonu a funkcí regexu má volitelný argument nazvaný Flags. Tyto příznaky mohou změnit význam daného vzoru regexu Pythonu. Abychom jim porozuměli, uvidíme jeden nebo dva příklady těchto vlajek.

Various flags used in Python includes

Syntax for Regex Flags What does this flag do
Make begin/end consider each line
It ignores case
Make
Make { \w,\W,\b,\B} follows Unicode rules
Make {\w,\W,\b,\B} follow locale
Allow comment in Regex

Example of re.M nebo víceřádkové příznaky

ve víceřádkovém znaku se vzor shoduje s prvním znakem řetězce a začátkem každého řádku (následuje bezprostředně za každým novým řádkem). Zatímco výraz malý “ w “ se používá k označení mezery znaky. Při spuštění kódu první proměnná „k1″ vytiskne pouze znak “ g “ Pro word guru99, zatímco když přidáte víceřádkový příznak, načte první znaky všech prvků v řetězci.

Python Regex Tutorial: re.zápas (), re.vyhledávání (), re.findall(), Vlajky

Zde je kód,

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • Jsme deklarovali proměnné xx pro řetězec “ guru99…. careerguru99….selen“
  • Spuštění kódu bez použití vlajek multiline, to dává výstup pouze “ g “ od čáry
  • Spustit kód s vlajkou „multiline“, při tisku k2 dává výstup jako „g“, “ c “ a “ s “
  • rozdíl můžeme vidět po a před přidáním multi-linky ve výše uvedeném příkladu.

podobně můžete také použít jiné příznaky Pythonu, jako je re.U (Unicode), re.L (Follow locale), re.X (povolit komentář) atd.

Python 2 Příklad

výše uvedené kódy jsou Python 3 příklady, pokud chcete spustit v Pythonu 2 zvažte následující kód.

# Example of w+ and ^ Expressionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print r1# Example of \s expression in re.split functionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print (re.split(r'\s','we are splitting the words'))print (re.split(r's','split the words'))# Using re.findall for textimport relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print(z.groups()) patterns = text = 'software testing is fun?'for pattern in patterns: print 'Looking for "%s" in "%s" ->' % (pattern, text), if re.search(pattern, text): print 'found a match!'else: print 'no match'abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print email# Example of re.M or Multiline Flagsimport rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print k1print k2

Shrnutí

regulární výraz v programovacím jazyce je zvláštní textový řetězec používaný k popisu hledání vzor. Obsahuje číslice a interpunkci a všechny speciální znaky jako $#@!%, atd. Výraz může obsahovat doslovný

  • odpovídající text
  • opakování
  • větvení
  • vzor-složení atd.

v Pythonu je regulární výraz označen jako RE (REs, regexes nebo regex pattern) jsou vloženy pomocí modulu Python re.

  • „re“ modul součástí Python používá především pro řetězec vyhledávání a manipulaci
  • Také často používán pro webovou stránku „Škrábání“ (extrahovat velké množství dat z webových stránek)
  • Regulární Výraz, Metody patří znovu.zápas (), re.hledat ()& re.findall()
  • Další Python RegEx nahradit metody jsou sub() a subn (), které jsou použity k nahrazení odpovídající řetězce v re
  • Python Vlajky Mnoha Python Regex Metody a Regex funkce vzít volitelný argument tzv. Vlajek
  • vlajky může změnit význam zadanému regulárnímu Výrazu
  • Různé Python flagů používaných v Regex Metody jsou znovu.M, re.Já, re.S, atd.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.