Maybaygiare.org

Blog Network

Python RegEx: re.match (), re.sök (), re.findall () med exempel

Vad är Reguljärt uttryck i Python?

ett reguljärt uttryck (RE) i ett programmeringsspråk är en speciell textsträng som används för att beskriva ett sökmönster. Det är mycket användbart för att extrahera information från text som kod, filer, logg, kalkylblad eller till och med dokument.

När du använder Python-reguljära uttrycket är det första att känna igen att allt i huvudsak är ett tecken, och vi skriver mönster för att matcha en specifik sekvens av tecken som också kallas sträng. Ascii eller latinska bokstäver är de som finns på dina tangentbord och Unicode används för att matcha den främmande texten. Den innehåller siffror och skiljetecken och alla specialtecken som $#@!%, osv.

i denna Python RegEx-handledning lär vi oss –

  • Regular Expression Syntax
  • exempel på w+ och ^ Expression
  • exempel på \s uttryck i re.split funktion
  • använda reguljära uttrycksmetoder
  • använda re.matcha ()
  • hitta mönster i Text (re.sök ())
  • använda re.findall för text
  • Python flaggor
  • exempel på re.M eller Multiline flaggor

till exempel kan ett Python-Reguljärt uttryck berätta för ett program att söka efter specifik text från strängen och sedan skriva ut resultatet i enlighet därmed. Uttrycket kan inkludera

  • Textmatchning
  • Repetition
  • förgrening
  • Mönsterkomposition etc.

Reguljärt uttryck eller RegEx i Python betecknas som RE (REs, regexes eller regex mönster) importeras via re modul. Python stöder Reguljärt uttryck genom Bibliotek. RegEx i Python stöder olika saker som modifierare, identifierare och blanktecken.

identifierare modifierare blanktecken Escape krävs
\d= valfritt tal (en siffra) \d representerar en siffra.Fd: \ d{1,5} det kommer att deklarera siffran mellan 1,5 som 424,444,545 etc. \n = ny rad . + * ? $ ^ () {} | \
\D = allt annat än ett tal (en icke-siffrig) + = matchar 1 eller fler \s= space
\s = space (flik,utrymme,newline etc.) ? = 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} = denna mängd föregående kod —————–

Reguljärt uttryck(RE) Syntax

import re
  • ”re” modul ingår i Python används främst för sträng sökning och manipulation
  • används också ofta för webbsida ”skrapning” (extrahera stora mängder av data) och data från webbplatser)

vi börjar expression Tutorial med denna enkla övning med hjälp av uttrycken (W+) och (^).

exempel på W + och ^ uttryck

  • ”^”: Detta uttryck matchar början på en sträng
  • ”w+”: detta uttryck matchar det alfanumeriska tecknet i strängen

Här ser vi ett Python RegEx-exempel på hur vi kan använda w+ och ^ uttryck i vår kod. Vi täcker funktionen re.findall () i Python, senare i denna handledning men ett tag fokuserar vi helt enkelt på \w+ och \^ uttryck.

till exempel, för vår sträng ”guru99, utbildning är kul” om vi kör koden med w+ och^, kommer den att ge utmatningen ”guru99”.

Python Regex handledning: re.match (), re.sök (), re.Findall (), flaggor

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

Kom ihåg att om du tar bort +tecken från w+, kommer utmatningen att ändras, och det kommer bara att ge det första tecknet i första bokstaven, dvs

exempel på \s uttryck i re.split-funktion

  • ”s”: detta uttryck används för att skapa ett mellanslag i strängen

för att förstå hur denna RegEx i Python fungerar börjar vi med ett enkelt Python RegEx-exempel på en split-funktion. I exemplet har vi delat varje ord med ” re.split ” funktion och samtidigt har vi använt uttryck \ s som gör det möjligt att tolka varje ord i strängen separat.

Python Regex handledning: re.match (), re.sök (), re.findall (), flaggor

När du kör den här koden kommer den att ge dig utmatningen .

låt nu se vad som händer om du tar bort ”\” från s. Det finns inget ”s” – alfabet i utmatningen, det beror på att vi har tagit bort ” \ ”från strängen och det utvärderar” s ”som ett vanligt tecken och därmed dela orden varhelst det hittar” s ” i strängen.

Python Regex handledning: re.match (), re.sök (), re.findall (), flaggor

På samma sätt finns det serier av andra Python-reguljära uttryck som du kan använda på olika sätt i Python som \d,\D,$,\., \ b, etc.

här är den fullständiga koden

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ärefter kommer vi att se vilka typer av metoder som används med reguljärt uttryck i Python.

använda reguljära uttrycksmetoder

paketet ”re” innehåller flera metoder för att faktiskt utföra frågor på en inmatningssträng. Vi kommer att se metoderna för re i Python:

  • re.matcha ()
  • re.sök ()
  • re.findall ()

Obs: baserat på de reguljära uttrycken erbjuder Python två olika primitiva operationer. Matchmetoden söker efter en matchning endast i början av strängen medan sökningen söker efter en matchning var som helst i strängen.

re.match ()

re.match () funktion re i Python kommer att söka det reguljära uttrycket mönstret och returnera den första förekomsten. Python RegEx Match metoden söker efter en match endast i början av strängen. Så om en matchning hittas i den första raden returnerar den matchningsobjektet. Men om en matchning hittas i någon annan RAD Returnerar Python RegEx Match-funktionen null.

tänk till exempel på följande kod för Python re.match () funktion. Uttrycket ” w+” och ”\W ”matchar orden som börjar med bokstaven” g ”och därefter identifieras inte något som inte startas med ”g”. För att kontrollera match för varje element i listan eller strängen, vi kör forloop i denna Python re.match () exempel.

Python Regex handledning: re.match (), re.sök (), re.Findall (), flaggor

re.Sök (): hitta mönster i Text

re.sök () – funktionen söker i det reguljära uttrycksmönstret och returnerar den första förekomsten. Till skillnad från Python re.match (), det kommer att kontrollera alla rader i inmatningssträngen. Python re.sök () funktionen returnerar en match objekt när mönstret hittas och ”null” om mönstret inte hittas

För att kunna använda Sök() funktion, måste du importera Python re modul först och sedan köra koden. Python re.sök () – funktionen tar ”mönster” och”text”för att skanna från vår huvudsträng

Python Regex Tutorial: re.match (), re.sök (), re.findall (), flaggor

till exempel här letar vi efter två bokstavliga strängar ”Software testing” ”guru99”, i en textsträng ”Software Testing is fun”. För ”programvarutestning” hittade vi matchen och returnerar därmed utmatningen från Python re.sök () exempel som ”hittade en matchning”, medan för ordet” guru99 ”kunde vi inte hitta i sträng, varför det returnerar utmatningen som”ingen matchning”.

re.findall ()

findall () modul används för att söka efter” alla ” händelser som matchar ett givet mönster. Däremot returnerar search () – modulen bara den första förekomsten som matchar det angivna mönstret. findall () kommer att iterera över alla rader i filen och kommer att returnera alla icke-överlappande matchningar av mönster i ett enda steg.

till exempel,, här har vi en lista över e-postadresser, och vi vill att alla e-postadresser som ska hämtas ut från listan, vi använder metoden re.findall () i Python. Den hittar alla e-postadresser från listan.

Python Regex handledning: re.match (), re.sök (), re.findall (), flaggor

Här är den fullständiga koden till exempel 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-flaggor

många Python Regex-metoder och Regex-funktioner tar ett valfritt argument som kallas flaggor. Detta flaggor kan ändra innebörden av den givna Python Regex mönster. För att förstå dessa kommer vi att se ett eller två exempel på dessa flaggor.

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-eller Multiline-flaggor

i multiline matchar mönstertecknet strängens första tecken och början på varje rad (följer omedelbart efter varje nyrad). Medan uttrycket litet ” w ” används för att markera utrymmet med tecken. När du kör koden skriver den första variabeln ”k1″ bara ut tecknet ” g ” för word guru99, medan när du lägger till multiline-flagga hämtar den första tecknen i alla element i strängen.

Python Regex handledning: re.match (), re.sök (), re.findall (), flaggor

här är koden

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • vi förklarade variabeln xx för strängen ” guru99…. careerguru99….selen ”
  • kör koden utan att använda flaggor multiline, det ger bara utmatningen ” g ”från raderna
  • kör koden med flaggan” multiline”, när du skriver ut ” k2 ”ger den utmatningen som ”g”, ” c ” och ” s ”
  • så skillnaden vi kan se efter och innan vi lägger till flera linjer i exemplet ovan.

På samma sätt kan du också använda andra Python-flaggor som re.U (Unicode), re.L (följ språk), re.X (Tillåt kommentar), etc.

Python 2 Exempel

ovanstående koder är Python 3 exempel, om du vill köra i Python 2 vänligen överväga följande kod.

# 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

sammanfattning

ett reguljärt uttryck i ett programmeringsspråk är en speciell textsträng som används för att beskriva ett sökmönster. Den innehåller siffror och skiljetecken och alla specialtecken som $#@!%, osv. Uttrycket kan innehålla bokstavlig

  • Textmatchning
  • Repetition
  • förgrening
  • Mönsterkomposition etc.

i Python betecknas ett reguljärt uttryck som RE (REs, regexes eller regex mönster) är inbäddade genom Python re-modulen.

  • ”re” modul ingår i Python används främst för sträng sökning och manipulation
  • används också ofta för webbsida ”skrapning” (extrahera stor mängd data från webbplatser)
  • reguljära Uttrycksmetoder inkluderar re.match (), re.sök ()& re.findall()
  • andra Python RegEx ersätta metoder är sub () och subn () som används för att ersätta matchande strängar i re
  • Python flaggor många Python Regex metoder och Regex funktioner tar en valfri argument som kallas flaggor
  • dessa flaggor kan ändra innebörden av den givna Regex mönster
  • olika Python flaggor som används i Regex metoder är re.M, re.Jag, re.S, etc.

Lämna ett svar

Din e-postadress kommer inte publiceras.