logo

Reguljärt uttryck (RegEx) i Python med exempel

A Reguljärt uttryck eller RegEx är en speciell sekvens av tecken som använder ett sökmönster för att hitta en sträng eller uppsättning strängar.

Den kan upptäcka närvaron eller frånvaron av en text genom att matcha den med ett visst mönster och kan också dela upp ett mönster i ett eller flera undermönster.



Regex-modul i Python

Python har en inbyggd modul som heter re som används för reguljära uttryck i Python. Vi kan importera den här modulen genom att använda importsatsen.

Exempel: Importerar re modul i Python

Python3








# importing re module> import> re>

>

>

Hur man använder RegEx i Python?

Du kan använda RegEx i Python efter att ha importerat re modul.

Exempel:

Denna Python-kod använder reguljära uttryck för att söka efter ordet portal i den givna strängen och skriver sedan ut start- och slutindexen för det matchade ordet i strängen.

Python3




import> re> > s>=> 'techcodeview.com: A computer science portal for geeks'> > match>=> re.search(r>'portal'>, s)> > print>(>'Start Index:'>, match.start())> print>(>'End Index:'>, match.end())>

>

>

Produktion

Start Index: 34 End Index: 40>

Notera: Här står r character (r’portal’) för rå, inte regex. Den råa strängen skiljer sig något från en vanlig sträng, den tolkar inte -tecknet som ett escape-tecken. Detta beror på att motorn för reguljära uttryck använder -tecken för sitt eget escape-syfte.

Innan vi börjar med Python regex-modulen, låt oss se hur man faktiskt skriver regex med hjälp av metatecken eller speciella sekvenser.

Metakaraktärer

Metatecken är karaktärer med speciell betydelse.

För att förstå RE-analogin är metatecken användbara och viktiga. De kommer att användas i funktioner i modulen re. Nedan är listan över metatecken.

Metakaraktärer

Beskrivning

Används för att ta bort den speciella betydelsen av tecken efter det

inställningsmeny för Android-telefon

[]

Representera en karaktärsklass

^

Matchar början

$

Matchar slutet

.

Matchar alla tecken utom nyrad

|

Betyder ELLER (matchar med någon av tecknen separerade av den.

?

Matchar noll eller en förekomst

*

Valfritt antal förekomster (inklusive 0 förekomster)

+

En eller flera händelser

{}

Ange antalet förekomster av ett föregående regex som ska matchas.

()

Bifoga en grupp av Regex

Låt oss diskutera var och en av dessa metakaraktärer i detalj:

1. – Omvänt snedstreck

Omvänt snedstreck () ser till att karaktären inte behandlas på ett speciellt sätt. Detta kan betraktas som ett sätt att undkomma metakaraktärer.

Till exempel, om du vill söka efter punkten(.) i strängen kommer du att upptäcka att punkt(.) kommer att behandlas som ett specialtecken som är en av metatecken (som visas i tabellen ovan). Så i det här fallet kommer vi att använda snedstrecket() precis före punkten(.) så att det kommer att förlora sin specialitet. Se exemplet nedan för en bättre förståelse.

Exempel:

Första sökningen ( re.search(r'.', s)> ) matchar vilket tecken som helst, inte bara punkten, medan den andra sökningen ( re.search(r'.', s)> ) letar specifikt efter och matchar periodkaraktären.

Python3




import> re> > s>=> 'geeks.forgeeks'> > # without using> match>=> re.search(r>'.'>, s)> print>(match)> > # using> match>=> re.search(r>'.'>, s)> print>(match)>

>

>

Produktion

>

2. [] – Hakparenteser

Hakparenteser ([]) representerar en teckenklass som består av en uppsättning tecken som vi vill matcha. Till exempel kommer teckenklassen [abc] att matcha alla enstaka a, b eller c.

Vi kan också specificera ett antal tecken med – inom hakparenteserna. Till exempel,

  • [0, 3] är prov som [0123]
  • [a-c] är samma som [abc]

Vi kan också invertera teckenklassen med hjälp av symbolen caret(^). Till exempel,

  • [^0-3] betyder valfritt tal utom 0, 1, 2 eller 3
  • [^a-c] betyder vilket tecken som helst utom a, b eller c

Exempel:

I den här koden använder du reguljära uttryck för att hitta alla tecken i strängen som faller inom intervallet 'a' till 'm'. De re.findall()> funktion returnerar en lista över alla sådana tecken. I den givna strängen är tecknen som matchar detta mönster: 'c', 'k', 'b', 'f', 'j', 'e', ​​'h', 'l', 'd', ' g'.

Python3




import> re> > string>=> 'The quick brown fox jumps over the lazy dog'> pattern>=> '[a-m]'> result>=> re.findall(pattern, string)> > print>(result)>

>

>

Produktion

['h', 'e', 'i', 'c', 'k', 'b', 'f', 'j', 'm', 'e', 'h', 'e', 'l', 'a', 'd', 'g']>

3. ^ – Caret

Caret-symbolen (^) matchar början av strängen, dvs kontrollerar om strängen börjar med de givna tecknen eller inte. Till exempel -

  • ^g kommer att kontrollera om strängen börjar med g såsom nördar, globe, girl, g, etc.
  • ^ge kommer att kontrollera om strängen börjar med ge, t.ex. geeks, geeksforgeeks, etc.

Exempel:

Den här koden använder reguljära uttryck för att kontrollera om en lista med strängar börjar med De . Om en sträng börjar med Den är markerad som Matchad annars är det märkt som Inte matchad.

Python3




import> re> regex>=> r>'^The'> strings>=> [>'The quick brown fox'>,>'The lazy dog'>,>'A quick brown fox'>]> for> string>in> strings:> >if> re.match(regex, string):> >print>(f>'Matched: {string}'>)> >else>:> >print>(f>'Not matched: {string}'>)>

>

>

Produktion

Matched: The quick brown fox Matched: The lazy dog Not matched: A quick brown fox>

4. $ – Dollar

Dollar($)-symbolen matchar slutet av strängen, dvs kontrollerar om strängen slutar med de givna tecknen eller inte. Till exempel-

  • s$ kommer att leta efter strängen som slutar med en såsom nördar, slutar, s, etc.
  • ks$ kommer att leta efter strängen som slutar med ks såsom geeks, geeksforgeeks, ks, etc.

Exempel:

Den här koden använder ett reguljärt uttryck för att kontrollera om strängen slutar med Värld!. Om en matchning hittas skrivs den ut Matchning hittad! annars skrivs det ut Matchning hittades inte .

Python3




import> re> > string>=> 'Hello World!'> pattern>=> r>'World!$'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)>

>

>

Produktion

Match found!>

5. . – Prick

Punkt(.)-symbolen matchar bara ett enstaka tecken förutom nyradstecknet ( ). Till exempel -

  • a.b kommer att leta efter strängen som innehåller något tecken på platsen för punkten som acb, acbd, abbb, etc.
  • .. kontrollerar om strängen innehåller minst 2 tecken

Exempel:

Den här koden använder ett reguljärt uttryck för att söka efter mönstret brun.räv inom strängen. Punkten (.>) i mönstret representerar vilket tecken som helst. Om en matchning hittas skrivs den ut Matchning hittad! annars skrivs det ut Matchningen hittades inte .

Python3




import> re> > string>=> 'The quick brown fox jumps over the lazy dog.'> pattern>=> r>'brown.fox'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)>

>

>

Produktion

Match found!>

6. | – Eller

Eller symbol fungerar som operatorn eller vilket betyder att den kontrollerar om mönstret före eller efter symbolen eller finns i strängen eller inte. Till exempel -

  • a|b kommer att matcha alla strängar som innehåller a eller b som acd, bcd, abcd, etc.

7. ? - Frågetecken

Frågetecknet (?) är en kvantifierare i reguljära uttryck som anger att det föregående elementet ska matchas noll eller en gång. Det låter dig ange att elementet är valfritt, vilket betyder att det kan förekomma en gång eller inte alls. Till exempel,

  • ab?c kommer att matchas för strängen ac, acb, dabc men kommer inte att matchas för abbc eftersom det finns två b. På samma sätt kommer det inte att matchas för abdc eftersom b inte följs av c.

8.* – Stjärna

Stjärna (*)-symbolen matchar noll eller fler förekomster av det regex som föregår *-symbolen. Till exempel -

  • ab*c kommer att matchas för strängen ac, abc, abbbc, dabc, etc. men kommer inte att matchas för abdc eftersom b inte följs av c.

9. + – Plus

Plussymbolen (+) matchar en eller flera förekomster av det regex som föregår +-symbolen. Till exempel -

  • ab+c kommer att matchas för strängen abc, abbc, dabc, men kommer inte att matchas för ac, abdc, eftersom det inte finns något b i ac och b, följs inte av c i abdc.

10. {m, n} – Hängslen

Klammerparenteser matchar alla repetitioner som föregår regex från m till och med n båda. Till exempel -

  • a{2, 4} kommer att matchas för strängen aaab, baaaac, gaad, men kommer inte att matchas för strängar som abc, bc eftersom det bara finns ett a eller inget a i båda fallen.

11. () – Grupp

Gruppsymbol används för att gruppera undermönster. Till exempel -

  • (a|b)cd kommer att matcha för strängar som acd, abcd, gacd, etc.

Specialsekvenser

Specialsekvenser stämmer inte överens med det faktiska tecknet i strängen, istället anger den den specifika platsen i söksträngen där matchningen måste ske. Det gör det lättare att skriva vanliga mönster.

Lista över specialsekvenser

Specialsekvens

Beskrivning

Exempel

A

Matchar om strängen börjar med det givna tecknet

Afor

för nördar

för världen



Matchar om ordet börjar eller slutar med det givna tecknet. (sträng) kommer att leta efter början av ordet och (sträng) kommer att söka efter slutet på ordet.

sträng till tecken java

ge

nördar

skaffa sig

B

Det är motsatsen till , dvs strängen ska inte börja eller sluta med det givna regexet.

Bge

tillsammans

förfalska

d

Matchar vilken decimalsiffra som helst, detta motsvarar uppsättningsklassen [0-9]

d

123

jösses1

D

Matchar alla icke-siffriga tecken, detta motsvarar uppsättningsklassen [^0-9]

D

nördar

nörd1

s

Matchar alla blanksteg.

s

nördar

a bc a

S

Matchar alla tecken som inte är blanksteg

S

en bd

abcd

I

Matchar alla alfanumeriska tecken, detta motsvarar klassen [a-zA-Z0-9_].

smtp internetprotokoll

I

123

nördar4

I

Matchar alla icke-alfanumeriska tecken.

I

>$

ge

MED

Matchar om strängen slutar med det givna regexet

ab

abcdab

bababab

RegEx-funktioner

re modulen innehåller många funktioner som hjälper oss att söka i en sträng efter en matchning.

Låt oss se olika funktioner som tillhandahålls av denna modul för att fungera med regex i Python.

Fungera Beskrivning
re.findall() hittar och returnerar alla matchande förekomster i en lista
omkompilera() Reguljära uttryck kompileras till mönsterobjekt
re.split() Dela strängen efter förekomsten av ett tecken eller ett mönster.
re.sub() Ersätter alla förekomster av ett tecken eller mönster med en ersättningssträng.
re.escape() Undslipper specialkaraktär
forskning() Söker efter första förekomsten av tecken eller mönster

Låt oss se hur dessa RegEx-funktioner fungerar med definition och exempel:

1. re.findall()

Returnera alla icke-överlappande matchningar av mönster i sträng, som en lista med strängar. Strängen skannas från vänster till höger och matchningar returneras i den ordning som hittas.

Att hitta alla förekomster av ett mönster

Den här koden använder ett reguljärt uttryck ( d+> ) för att hitta alla sekvenser av en eller flera siffror i den givna strängen. Den söker efter numeriska värden och lagrar dem i en lista. I det här exemplet hittar och skriver den ut siffrorna 123456789 och 987654321 från inmatningssträngen.

Python3




import> re> string>=> '''Hello my Number is 123456789 and> >my friend's number is 987654321'''> regex>=> 'd+'> > match>=> re.findall(regex, string)> print>(match)>

>

>

Produktion

['123456789', '987654321']>

2. re.compile()

Reguljära uttryck kompileras till mönsterobjekt, som har metoder för olika operationer som att söka efter mönstermatchningar eller utföra strängbyten.

Exempel 1:

Koden använder ett reguljärt uttrycksmönster [a-e]> för att hitta och lista alla små bokstäver från 'a' till 'e' i inmatningssträngen Ja, sa herr Gibenson Stark. Utgången blir ['e', 'a', 'd', 'b', 'e']> , som är de matchande tecknen.

Pytonorm




import> re> p>=> re.>compile>(>'[a-e]'>)> > print>(p.findall(>'Aye, said Mr. Gibenson Stark'>))>

>

>

Produktion

['e', 'a', 'd', 'b', 'e', 'a']>

Förstå resultatet:

  • Första förekomsten är 'e' i Aye och inte 'A', eftersom det är skiftlägeskänsligt.
  • Nästa förekomst är 'a' i sagt, sedan 'd' i sagt, följt av 'b' och 'e' i Gibenson, det sista 'a' matchar Stark.
  • Omvänt snedstreck '' har en mycket viktig roll eftersom det signalerar olika sekvenser. Om omvänt snedstreck ska användas utan dess speciella betydelse som metatecken, använd ''

Exempel 2: Ange klass [s,.] kommer att matcha alla blanksteg, ',' eller '.' .

Koden använder reguljära uttryck för att hitta och lista alla ensiffriga siffror och sekvenser av siffror i de givna inmatningssträngarna. Den hittar ensiffriga med d> och siffersekvenser med d+> .

Pytonorm




import> re> p>=> re.>compile>(>'d'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))> > p>=> re.>compile>(>'d+'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))>

>

>

Produktion

['1', '1', '4', '1', '8', '8', '6'] ['11', '4', '1886']>

Exempel 3:

Koden använder reguljära uttryck för att hitta och lista ordtecken, sekvenser av ordtecken och icke-ordstecken i inmatningssträngar. Den tillhandahåller listor över matchade karaktärer eller sekvenser.

Pytonorm




import> re> > p>=> re.>compile>(>'w'>)> print>(p.findall(>'He said * in some_lang.'>))> > p>=> re.>compile>(>'w+'>)> print>(p.findall('I went to him at>11> A.M., he> said>*>*>*> in> some_language.'))> > p>=> re.>compile>(>'W'>)> print>(p.findall(>'he said *** in some_language.'>))>

>

>

Produktion

['H', 'e', 's', 'a', 'i', 'd', 'i', 'n', 's', 'o', 'm', 'e', '_', 'l', 'a', 'n', 'g'] ['I', 'went', 'to', 'him', 'at', '11', 'A', 'M', 'he', 'said', 'in', 'some_language'] [' ', ' ', '*', '*', '*', ' ...>

Exempel 4:

Koden använder ett reguljärt uttrycksmönster 'ab*' för att hitta och lista alla förekomster av 'ab' följt av noll eller fler 'b'-tecken i inmatningssträngen ababbaabbb. Den returnerar följande lista med matchningar: ['ab', 'abb', 'abbb'].

Pytonorm




import> re> p>=> re.>compile>(>'ab*'>)> print>(p.findall(>'ababbaabbb'>))>

>

för loop i c

>

Produktion

['ab', 'abb', 'a', 'abbb']>

Förstå resultatet:

  • Vår RE är ab*, vilket 'a' åtföljs av något nej. av 'b', med början från 0.
  • Utdata 'ab', är giltig på grund av singel 'a' åtföljd av singel 'b'.
  • Utdata 'abb', är giltigt på grund av singel 'a' åtföljd av 2 'b'.
  • Utdata 'a', är giltigt på grund av singel 'a' åtföljd av 0 'b'.
  • Utdata 'abbb', är giltig på grund av singel 'a' åtföljd av 3 'b'.

3. re.split()

Dela strängen efter förekomsten av ett tecken eller ett mönster, när mönstret hittas returneras de återstående tecknen från strängen som en del av den resulterande listan.

Syntax :

re.split(pattern, string, maxsplit=0, flags=0)>

Den första parametern, mönster betecknar det reguljära uttrycket, sträng är den givna strängen i vilken mönstret kommer att sökas efter och där delning sker, maxsplit om det inte tillhandahålls anses vara noll '0', och om något värde som inte är noll anges, då som mest uppstår så många splittringar. Om maxsplit = 1, kommer strängen att delas endast en gång, vilket resulterar i en lista med längd 2. Flaggorna är mycket användbara och kan hjälpa till att förkorta kod, de är inte nödvändiga parametrar, t.ex.: flaggor = re.IGNORECASE, i denna uppdelning , fallet, d.v.s. gemener eller versaler kommer att ignoreras.

Exempel 1:

Delar en sträng med icke-ordstecken och mellanslag som avgränsare och returnerar ord: ['Words', 'words', 'Words']> . Betraktar apostrof som icke-ordstecken: ['Word', 's', 'words', 'Words']> . Delar med icke-ord-tecken och siffror: ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM']> . Delar med siffror som avgränsare: ['On ', 'th Jan ', ', at ', ':', ' AM']> .

Pytonorm




from> re>import> split> > print>(split(>'W+'>,>'Words, words , Words'>))> print>(split(>'W+'>,>'Word's words Words'>))> print>(split(>'W+'>,>'On 12th Jan 2016, at 11:02 AM'>))> print>(split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>))>

>

>

Produktion

['Words', 'words', 'Words'] ['Word', 's', 'words', 'Words'] ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM'] ['On ', 'th Jan ', ', at ', ':', ' AM']>

Exempel 2:

First statement delar strängen vid den första förekomsten av en eller flera siffror: ['On ', 'th Jan 2016, at 11:02 AM']> . sekund delar strängen med små bokstäver a till f som avgränsare, skiftlägesokänslig: ['', 'y, ', 'oy oh ', 'oy, ', 'ome here'> ]>. Tredje delar strängen med små bokstäver a till f som avgränsare, skiftlägeskänslig: ['', 'ey, Boy oh ', 'oy, ', 'ome here']> .

Pytonorm




import> re> print>(re.split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>,>1>))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>, flags>=>re.IGNORECASE))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>))>

>

>

Produktion

['On ', 'th Jan 2016, at 11:02 AM'] ['', 'y, ', 'oy oh ', 'oy, ', 'om', ' h', 'r', ''] ['A', 'y, Boy oh ', 'oy, ', 'om', ' h', 'r', '']>

4. re.sub()

'Sub' i funktionen står för SubString, ett visst reguljärt uttrycksmönster genomsöks i den givna strängen (3:e parametern), och när substrängmönstret hittas ersätts det med repl (2nd parameter), count kontrollerar och underhåller antalet gånger detta inträffar.

Syntax:

 re.sub(pattern, repl, string, count=0, flags=0)>

Exempel 1:

  • Det första påståendet ersätter alla förekomster av 'ub' med '~*' (skiftlägeskänsligt): 'S~*ject has ~*er booked already'> .
  • Det andra påståendet ersätter alla förekomster av 'ub' med '~*' (skiftlägeskänsligt): 'S~*ject has Uber booked already'> .
  • Det tredje påståendet ersätter den första förekomsten av 'ub' med '~*' (skiftlägeskänsligt): 'S~*ject has Uber booked already'> .
  • Fjärde ersätter 'OCH' med ' & ' (okänslig för skiftlägen): 'Baked Beans & Spam'> .

Pytonorm




import> re> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >count>=>1>, flags>=>re.IGNORECASE))> print>(re.sub(r>'sANDs'>,>' & '>,>'Baked Beans And Spam'>,> >flags>=>re.IGNORECASE))>

>

>

Produktion

S~*ject has ~*er booked already S~*ject has Uber booked already S~*ject has Uber booked already Baked Beans & Spam>

5. re.subn()

subn() liknar sub() på alla sätt, utom i sitt sätt att ge utdata. Den returnerar en tupel med en räkning av summan av ersättning och den nya strängen snarare än bara strängen.

Syntax:

 re.subn(pattern, repl, string, count=0, flags=0)>

Exempel:

re.subn()> ersätter alla förekomster av ett mönster i en sträng och returnerar en tupel med den modifierade strängen och antalet gjorda ersättningar. Det är användbart för både skiftlägeskänsliga och skiftlägesokänsliga ersättningar.

Pytonorm




import> re> > print>(re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> > t>=> re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE)> print>(t)> print>(>len>(t))> print>(t[>0>])>

>

>

Produktion

('S~*ject has Uber booked already', 1) ('S~*ject has ~*er booked already', 2) 2 S~*ject has ~*er booked already>

6. re.escape()

Returnerar sträng med alla icke-alfanumeriska omvänd snedstreck, detta är användbart om du vill matcha en godtycklig bokstavlig sträng som kan ha reguljära uttrycksmetatecken.

Syntax:

re.escape(string)>

Exempel:

re.escape()> används för att undvika specialtecken i en sträng, vilket gör det säkert att användas som ett mönster i reguljära uttryck. Det säkerställer att alla tecken med speciella betydelser i reguljära uttryck behandlas som bokstavliga tecken.

Pytonorm




import> re> print>(re.escape(>'This is Awesome even 1 AM'>))> print>(re.escape(>'I Asked what is this [a-9], he said ^WoW'>))>

>

>

Produktion

This is Awesome even 1 AM I Asked what is this [a-9], he said   ^WoW>

7. re.search()

Den här metoden returnerar antingen None (om mönstret inte matchar), eller så innehåller ett re.MatchObject information om den matchande delen av strängen. Denna metod slutar efter den första matchningen, så den lämpar sig bäst för att testa ett reguljärt uttryck mer än att extrahera data.

Exempel: Söker efter en förekomst av mönstret

Den här koden använder ett reguljärt uttryck för att söka efter ett mönster i den givna strängen. Om en matchning hittas extraherar den och skriver ut de matchade delarna av strängen.

I det här specifika exemplet söker den efter ett mönster som består av en månad (bokstäver) följt av en dag (siffror) i inmatningssträngen jag föddes den 24 juni. Om en matchning hittas skriver den ut hela matchningen, månaden , och dagen.

Python3




import> re> regex>=> r>'([a-zA-Z]+) (d+)'> > match>=> re.search(regex,>'I was born on June 24'>)> if> match !>=> None>:> >print> (>'Match at index %s, %s'> %> (match.start(), match.end()))> >print> (>'Full match: %s'> %> (match.group(>0>)))> >print> (>'Month: %s'> %> (match.group(>1>)))> >print> (>'Day: %s'> %> (match.group(>2>)))> > else>:> >print> (>'The regex pattern does not match.'>)>

>

>

Produktion

Match at index 14, 21 Full match: June 24 Month: June Day: 24>

INSTÄLLNINGAR

A Uppsättning är en uppsättning tecken som omges av '[]' parenteser. Uppsättningar används för att matcha ett enstaka tecken i den uppsättning tecken som anges mellan parenteser. Nedan är listan över set:

Uppsättning Beskrivning
{n,} Kvantifierar föregående tecken eller grupp och matchar minst n förekomster.
* Kvantifierar föregående tecken eller grupp och matchar noll eller fler förekomster.
[0123] Matchar de angivna siffrorna (0, 1, 2 eller 3)
[^arn] matchar alla tecken UTOM a, r och n
d Matchar valfri siffra (0-9).
[0-5][0-9] matchningar för alla tvåsiffriga nummer från 00 och 59
I Matchar alla alfanumeriska tecken (a-z, A-Z, 0-9 eller _).
[en] Matchar alla gemener mellan a och n.
D Matchar alla icke-siffriga tecken.
[arn] matchar där ett av de angivna tecknen (a, r eller n) finns
[a-zA-Z] matchar alla tecken mellan a och z, gemener ELLER versaler
[0-9] matchar valfri siffra mellan 0 och 9

Matcha objekt

Ett Match-objekt innehåller all information om sökningen och resultatet och om det inte finns någon matchning kommer Ingen att returneras. Låt oss se några av de vanligaste metoderna och attributen för matchningsobjektet.

1. Hämta strängen och regex

match.re attribut returnerar det reguljära uttrycket som passerats och match.string attribut returnerar den passerade strängen.

Exempel: Hämta strängen och regexet för det matchade objektet

Koden söker efter bokstaven G vid en ordgräns i strängen Välkommen till GeeksForGeeks och skriver ut det reguljära uttrycksmönstret ( res.re> ) och originalsträngen ( res.string> ) .

Python3




import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'G'>, s)> > print>(res.re)> print>(res.string)>

>

>

Produktion

re.compile('G') Welcome to GeeksForGeeks>

2. Hämta index för matchat objekt

  • start()-metoden returnerar startindexet för den matchade delsträngen
  • end()-metoden returnerar slutindexet för den matchade delsträngen
  • span()-metoden returnerar en tupel som innehåller start- och slutindexet för den matchade delsträngen

Exempel: Hämtar index för matchat objekt

Koden söker efter delsträngen Gee vid en ordgräns i strängen Welcome to GeeksForGeeks och skriver ut startindexet för matchningen (res.start()>), matchens slutindex (res.end()>), och matchens spann (res.span()>).

Python3




import> re> > s>=> 'Welcome to GeeksForGeeks'> > res>=> re.search(r>'Gee'>, s)> > print>(res.start())> print>(res.end())> print>(res.span())>

>

>

Produktion

11 14 (11, 14)>

3. Få matchad delsträng

group()-metoden returnerar den del av strängen som mönstren matchar för. Se exemplet nedan för en bättre förståelse.

Exempel: Får matchad delsträng

Koden söker efter en sekvens av två icke-siffriga tecken följt av ett mellanslag och bokstaven 't' i strängen Welcome to GeeksForGeeks och skriver ut den matchade texten med res.group()> .

Python3




javascript

import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'D{2} t'>, s)> print>(res.group())>

>

>

Produktion

me t>

I exemplet ovan specificerar vårt mönster för strängen som innehåller minst 2 tecken som följs av ett mellanslag, och det mellanslag följs av ett t.

Relaterad artikel:

Referens:
https://docs.python.org/2/library/re.html

Vi har diskuterat RegEx i Python, vi har gått igenom metatecken, funktioner och specialsekvenser i RegEx Python.

Regular Expression är ett mycket viktigt begrepp i Python, vi har försökt förklara det på ett enkelt sätt. Hoppas det hjälper i din Python-resa!!