- Wat is Reguliere Expressie in Python?
- Reguliere Expressie(RE) Syntax
- voorbeeld van w+ en ^ expressie
- voorbeeld van \s expressie in re.split function
- met behulp van reguliere expressiemethoden
- re.match ()
- re.search(): zoekpatroon in tekst
- re.findall ()
- Python Flags
- Example of re.M of Multiline Flags
- samenvatting
Wat is Reguliere Expressie in Python?
een Reguliere Expressie (RE) in een programmeertaal is een speciale tekstreeks die gebruikt wordt om een zoekpatroon te beschrijven. Het is uiterst nuttig voor het extraheren van informatie uit tekst zoals code, bestanden, log, spreadsheets of zelfs documenten.
tijdens het gebruik van de Python reguliere expressie is het eerste wat je moet herkennen dat alles in wezen een karakter is, en we schrijven patronen die overeenkomen met een specifieke reeks tekens, ook wel string genoemd. Ascii of Latijnse letters zijn die op je Toetsenborden staan en Unicode wordt gebruikt om de vreemde tekst te matchen. Het bevat cijfers en interpunctie en alle Speciale tekens zoals $#@!%, etc.
in deze Python RegEx tutorial zullen we-
- Reguliere Expressie syntaxis
- voorbeeld van w+ en ^ expressie
- voorbeeld van \s expressie in re leren.splits functie
- met behulp van reguliere expressiemethoden
- met behulp van re.match ()
- zoekpatroon in tekst (re.search ())
- met behulp van re.findall voor tekst
- Python vlaggen
- voorbeeld van re.M of Multiline Flags
bijvoorbeeld, een Python reguliere expressie kan een programma vertellen om te zoeken naar specifieke tekst uit de string en vervolgens het resultaat dienovereenkomstig af te drukken. Expressie kan
- tekst matching
- herhaling
- vertakking
- patroon-samenstelling etc.
reguliere expressie of RegEx in Python wordt aangeduid als RE (REs, Regex of regexpatroon) worden geïmporteerd via de re-module. Python ondersteunt reguliere expressie via bibliotheken. RegEx in Python ondersteunt verschillende dingen zoals Modifiers, Identifiers, en witruimte tekens.
Identifiers | Modifiers | Witruimtetekens | Escape required |
---|---|---|---|
\d= any number (a digit) | \D is een cijfer.Ex: \d{1,5} Het geeft een cijfer tussen 1,5 zoals 424,44,545 etc. | \n = nieuwe regel | . + * ? $ ^ () {} | \ |
\D = alles behalve een getal (een niet-cijfer) | + = komt overeen met 1 of meer | \s = spatie | |
\s = spatie (tab,spatie,nieuwe regel enz.) | ? = 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} = dit bedrag van voorgaande code | —————– |
Reguliere Expressie(RE) Syntax
import re
- “re” module opgenomen met Python voornamelijk gebruikt voor de string te zoeken en manipulatie
- Ook vaak gebruikt voor web pagina “Schrapen” (uittreksel grote hoeveelheid gegevens van websites)
We zullen beginnen met de uitdrukking tutorial met deze eenvoudige oefening door het gebruik van de uitdrukkingen (w+) en (^).
voorbeeld van w+ en ^ expressie
- “^”: Deze expressie komt overeen met het begin van een tekenreeks
- “w+”: deze expressie komt overeen met het alfanumerieke teken in de tekenreeks
Hier zullen we een Python RegEx voorbeeld zien van hoe we W+ en ^ expressie kunnen gebruiken in onze code. We dekken de functie re.findall () in Python, later in deze tutorial maar voor een tijdje richten we ons gewoon op \w+ en \^ expressie.
bijvoorbeeld, voor onze string ” guru99, education is fun “als we de code uitvoeren met w+ en^, geeft het de output”guru99”.
import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print(r1)
onthoud, als je +teken uit de w+ verwijdert, zal de uitvoer veranderen, en het zal alleen het eerste teken van de eerste letter geven, dat wil zeggen,
voorbeeld van \s expressie in re.split function
- “s”: deze uitdrukking wordt gebruikt voor het maken van een spatie in de string
om te begrijpen hoe deze RegEx in Python werkt, beginnen we met een eenvoudig Python RegEx voorbeeld van een split functie. In het voorbeeld hebben we elk woord gesplitst met de ” re.split ” functie en tegelijkertijd hebben we expressie \s gebruikt die het mogelijk maakt om elk woord in de tekenreeks afzonderlijk te ontleden.
wanneer u deze code uitvoert, krijgt u de uitvoer .
laat nu zien wat er gebeurt als je “\” uit s verwijdert. Er is geen ‘s’ alfabet in de uitvoer, dit is omdat we ‘\’ uit de tekenreeks hebben verwijderd, en het evalueert “s” als een normaal teken en dus splitst de woorden waar het “s” in de tekenreeks vindt.
evenzo zijn er series van andere Python reguliere expressie die je op verschillende manieren kunt gebruiken in Python zoals \d,\D,$,\., \b, enz.
Hier is de volledige code
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')))
hierna zullen we de typen methoden zien die gebruikt worden met reguliere expressie in Python.
met behulp van reguliere expressiemethoden
het pakket” re “biedt verschillende methoden om query’ s uit te voeren op een invoerstring. We zullen de methoden van re zien in Python:
- re.match ()
- re.search ()
- re.findall ()
opmerking: op basis van de reguliere expressies biedt Python twee verschillende primitieve bewerkingen. De match methode controleert op een match alleen aan het begin van de string, terwijl zoeken controleert op een match ergens in de string.
re.match ()
re.match () functie van re in Python zal het reguliere expressiepatroon doorzoeken en het eerste voorkomen retourneren. De Python RegEx Match methode controleert op een match alleen aan het begin van de string. Dus, als een match wordt gevonden in de eerste regel, het Retourneert de match object. Maar als een overeenkomst wordt gevonden in een andere regel, de Python RegEx Match functie retourneert null.
bijvoorbeeld, overweeg de volgende code van Python re.match () functie. De uitdrukking “w+ “en” \W ” komen overeen met de woorden die beginnen met de letter ‘g’ en daarna wordt alles wat niet met ‘g’ is begonnen niet geïdentificeerd. Om match te controleren voor elk element in de lijst of string, draaien we de forloop in deze Python re.match () voorbeeld.
re.search(): zoekpatroon in tekst
re.search () functie zal het reguliere expressiepatroon doorzoeken en het eerste voorkomen retourneren. In tegenstelling tot Python re.match (), Het controleert alle regels van de invoerstring. De Python re.search () functie retourneert een overeenkomst object wanneer het patroon wordt gevonden en” null ” als het patroon niet wordt gevonden
om search () functie te gebruiken, moet u eerst Python re module importeren en vervolgens de code uitvoeren. De Python re.search () functie neemt de “pattern” en “text”om te scannen vanaf onze hoofdstring
bijvoorbeeld hier zoeken we naar twee letterlijke strings “Software testing” “guru99”, in een tekststring “Software Testing is fun”. Voor “software testing” vonden we de match dus het Retourneert de uitvoer van Python re.search () Voorbeeld als “een overeenkomst gevonden”, terwijl voor woord ” guru99 “we niet konden vinden in string vandaar dat het de uitvoer als”geen overeenkomst” retourneert.
re.findall ()
findall () module wordt gebruikt om te zoeken naar “alle” instanties die overeenkomen met een bepaald patroon. In tegenstelling, search () module zal alleen de eerste instantie die overeenkomt met het opgegeven patroon retourneren. findall () zal itereren over alle regels van het bestand en zal alle niet-overlappende overeenkomsten van patroon in een enkele stap terug te keren.
bijvoorbeeld, hier hebben we een lijst met e-mailadressen, en we willen dat alle e-mailadressen uit de lijst worden gehaald, we gebruiken de methode re.findall () in Python. Het zal alle e-mailadressen uit de lijst te vinden.
Hier is de volledige code bijvoorbeeld van 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
veel Python Regex methoden en Regex functies hebben een optioneel argument genaamd Flags. Deze vlaggen kunnen de Betekenis van het gegeven Python Regex patroon wijzigen. Om deze te begrijpen zullen we een of twee voorbeelden van deze vlaggen zien.
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 of Multiline Flags
in multiline komt het patroon overeen met het eerste teken van de tekenreeks en het begin van elke regel (die onmiddellijk na elke nieuwe regel volgt). Terwijl expressie klein ” w ” wordt gebruikt om de ruimte met tekens te markeren. Wanneer u de code uitvoert, drukt de eerste variabele “k1” alleen het teken ‘g’ AF voor word guru99, terwijl wanneer u multiline flag toevoegt, het de eerste tekens van alle elementen in de string ophaalt.
Hier is de code
import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
- we hebben de variabele xx voor string ” guru99…. careerguru99….selenium “
- Voer de code uit zonder vlaggen multiline te gebruiken, het geeft de uitvoer alleen ‘ g ‘van de regels
- Voer de code uit met vlag “multiline”, wanneer u’ K2 ‘afdrukt, geeft het de uitvoer als’ g’,’ c ‘en’ s ‘
- dus, het verschil dat we kunnen zien na en voor het toevoegen van meerdere regels in het bovenstaande voorbeeld.
Op dezelfde manier kunt u ook andere Python vlaggen zoals re gebruiken.U (Unicode), re.L (volg lokale), re.X (commentaar toestaan), enz.
Python 2 voorbeeld
bovenstaande codes zijn Python 3 voorbeelden, Als u in Python 2 wilt draaien, overweeg dan de volgende code.
# 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
samenvatting
een reguliere expressie in een programmeertaal is een speciale tekstreeks die gebruikt wordt om een zoekpatroon te beschrijven. Het bevat cijfers en interpunctie en alle Speciale tekens zoals $#@!%, etc. Expressie kan letterlijke
- tekst matching
- herhaling
- vertakking
- patroon-samenstelling etc.
in Python wordt een reguliere expressie aangeduid als RE (REs, Regex of regexpatroon) zijn ingebed via de Python re-module.
- “re” module meegeleverd met Python voornamelijk gebruikt voor string zoeken en manipulatie
- ook vaak gebruikt voor webpagina “Scraping” (extraheren grote hoeveelheid gegevens van websites)
- reguliere Expressiemethoden omvatten re.match (), re.search()& re.findall ()
- andere Python – regexvervangingsmethoden zijn sub () en subn () die worden gebruikt om overeenkomende tekenreeksen te vervangen in re
- Python-vlaggen veel Python-Regexmethoden en Regex-functies hebben een optioneel argument genaamd Flags
- deze vlaggen kunnen de Betekenis van het gegeven Regex-patroon
- wijzigen verschillende Python-vlaggen die worden gebruikt in Regex-methoden zijn re.M, re.I, re.S, enz.