Maybaygiare.org

Blog Network

Python RegEx: újra.mérkőzés (), újra.keresés (), újra.findall () példával

mi a reguláris kifejezés a Pythonban?

a reguláris kifejezés (RE) egy programozási nyelvben egy speciális szöveges karakterlánc, amelyet egy keresési minta leírására használnak. Rendkívül hasznos információk kinyerésére szövegből, például kódból, fájlokból, naplókból, táblázatokból vagy akár dokumentumokból.

a Python reguláris kifejezés használata során az első dolog felismerni, hogy minden lényegében egy karakter, és mintákat írunk, hogy megfeleljenek egy adott karaktersorozatnak, amelyet stringnek is neveznek. Az Ascii vagy latin betűk azok, amelyek a billentyűzeten vannak, az Unicode pedig az idegen szöveghez illeszkedik. Ez magában foglalja a számjegyek és írásjelek és az összes speciális karakterek, mint a$#@!% stb.

ebben a Python Regex oktatóanyagban megtanuljuk –

  • reguláris kifejezés szintaxis
  • példa w+ és ^ kifejezésre
  • példa \s kifejezésre re-ben.split funkció
  • reguláris kifejezési módszerek használata
  • re használatával.match ()
  • Minta keresése a szövegben (újra.keresés ())
  • A re használatával.findall szöveg
  • Python zászlók
  • példa re.M vagy többsoros zászlók

például egy Python reguláris kifejezés megmondhatja a programnak, hogy keressen konkrét szöveget a karakterláncból, majd ennek megfelelően nyomtassa ki az eredményt. A kifejezés tartalmazhat

  • Szövegillesztés
  • ismétlés
  • elágazó
  • Minta-összetétel stb.

reguláris kifejezés vagy RegEx Python jelöljük RE (REs, regexes vagy regex minta) keresztül importált re modul. A Python támogatja a reguláris kifejezést könyvtárakon keresztül. RegEx Python támogatja a különböző dolgokat, mint a módosítók, azonosítók, és a fehér szóköz karaktereket.

azonosítók módosítók üres karakterek menekülés szükséges
\d= bármely szám (egy számjegy) \d egy számjegyet jelent.Volt: \d{1,5} ez deklarálja számjegy között 1,5 mint 424,444,545 stb. \n = új sor . + * ? $ ^ () {} | \
\d = bármi, csak egy szám (nem számjegy) + = 1 vagy több találat \s= szóköz
\s = szóköz (fül,szóköz,újsor stb.) ? = 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} = az előző kód összege —————–

reguláris kifejezés(újra) szintaxis

import re
  • “re” modul tartalmazza Python elsősorban használt karakterlánc keresés és manipuláció
  • is gyakran használják a weboldal “kaparás” (kivonat nagy mennyiségű

ezzel az egyszerű gyakorlattal kezdjük a kifejezés bemutatóját a (W+) és (^) kifejezések használatával.

példa w + és ^ kifejezésre

  • “^”: Ez a kifejezés megegyezik egy karakterlánc kezdetével
  • ” w+”: ez a kifejezés megegyezik a karakterlánc alfanumerikus karakterével

itt egy Python RegEx példát fogunk látni arra, hogyan használhatjuk a W+ és ^ kifejezést a kódunkban. Fedjük le a funkciót újra.findall () Pythonban, később ebben a bemutatóban, de egy ideig egyszerűen a \w+ és \^ kifejezésre koncentrálunk.

például a “guru99, education is fun” karakterláncunk esetében, ha a kódot W+ és^ karakterlánccal hajtjuk végre, akkor a “guru99″kimenetet kapjuk.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.findall (), Flags

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

ne feledje, ha eltávolítja a +jelet a w+ – ból, a kimenet megváltozik, és csak az első betű első karakterét adja meg, azaz

példa a \s kifejezésre a re-ben.split funkció

  • “s”: ezt a kifejezést használják egy szóköz létrehozására a

karakterláncban, hogy megértsük, hogyan működik ez a Regex a Pythonban, egy egyszerű Python RegEx példával kezdjük a split függvényt. A példában minden szót megosztottunk a ” re.split ” funkciót, és ugyanakkor már használt kifejezés \s, amely lehetővé teszi, hogy elemezze minden szót a karakterlánc külön-külön.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.findall (), zászlók

amikor végrehajtja ezt a kódot, megadja a kimenetet .

lássuk, mi történik, ha eltávolítja a ” \ ” – t az s-ből. nincs “s” ábécé a kimeneten, ez azért van, mert eltávolítottuk a ” \ “- t a karakterláncból, és az ” s “- t szabályos karakterként értékeli, és így felosztja a szavakat bárhol, ahol ” s ” – t talál a karakterláncban.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.Findall (), Flags

hasonlóképpen vannak más Python reguláris kifejezések is, amelyeket különféle módon használhat a Pythonban, például \d,\D,$,\., \ b stb.

itt van a teljes 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')))

ezután megnézzük a Python reguláris kifejezésével használt módszerek típusait.

reguláris kifejezési módszerek használata

a ” re ” csomag számos módszert kínál a lekérdezések tényleges végrehajtására egy bemeneti karakterláncon. Látni fogjuk a Re módszereit a Pythonban:

  • re.match ()
  • re.keresés ()
  • re.findall ()

megjegyzés: a reguláris kifejezések alapján a Python két különböző primitív műveletet kínál. Az egyezési módszer csak a karakterlánc elején ellenőrzi az egyezést, míg a keresés a karakterlánc bármely pontján ellenőrzi az egyezést.

re.mérkőzés ()

újra.match () függvény re Python keres a reguláris kifejezés minta és vissza az első előfordulása. A Python RegEx egyezési módszer csak a karakterlánc elején ellenőrzi az egyezést. Tehát, ha az első sorban talál egyezést, akkor visszaadja a mérkőzés objektumot. De ha egy egyezést talál egy másik sorban, akkor a Python RegEx Match függvény null értéket ad vissza.

vegyük például a Python re következő kódját.match () funkció. A “w+” és a “\W” kifejezés megegyezik a ” g “betűvel kezdődő szavakkal, és ezt követően minden, ami nem” g ” betűvel kezdődik, nem azonosítható. A lista vagy a karakterlánc egyes elemeinek ellenőrzéséhez futtassuk a Forloopot ebben a Python re-ben.mérkőzés () példa.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.findall (), zászlók

újra.keresés (): Minta keresése a szövegben

re.a search() függvény megkeresi a reguláris kifejezésmintát, és visszaadja az első előfordulást. Ellentétben Python re.match (), akkor ellenőrizze az összes sort a bemeneti karakterlánc. A Python re.a search () függvény egy match objektumot ad vissza, amikor a minta megtalálható, és “null”, ha a minta nem található

a search() függvény használatához először importálnia kell a Python re modult, majd végre kell hajtania a kódot. A Python re.keresés () funkció veszi a “minta” és a”szöveg”, hogy átvizsgálja a fő karakterlánc

Python Regex Tutorial: re.mérkőzés (), újra.keresés (), újra.findall (), zászlók

itt például két szó szerinti karakterláncot keresünk “szoftvertesztelés” “guru99”, egy szöveges karakterláncban “a szoftvertesztelés szórakoztató”. A “szoftverteszteléshez” megtaláltuk a mérkőzést, ezért visszaadja a Python re kimenetét.search () Példa a “talált egyezés”, míg a szó” guru99 “Nem találtunk string ezért visszaadja a kimenetet, mint”nincs egyezés”.

re.findall ()

a findall () modul az “összes” előfordulás keresésére szolgál, amelyek megfelelnek egy adott mintának. Ezzel szemben a search () modul csak az első előfordulást adja vissza, amely megfelel a megadott mintának. a findall () a fájl összes sorában ismétlődik, és egyetlen lépésben visszaadja a minta összes nem átfedő egyezését.

például itt van egy lista az e-mail címeket, és azt akarjuk, hogy az összes e-mail címeket kell letölteni ki a listából, használjuk a módszert újra.Findall () Pythonban. Meg fogja találni az összes e-mail címet a listából.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.findall (), zászlók

itt van a teljes kódot például 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

sok Python Regex metódus és Regex függvény egy flags nevű opcionális argumentumot vesz fel. Ez a jelző módosíthatja az adott Python Regex minta jelentését. Ezek megértéséhez egy vagy két példát fogunk látni ezekre a zászlókra.

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 vagy többsoros zászlók

a többsoros mintában a karakter megegyezik a karakterlánc első karakterével és az egyes sorok elejével (közvetlenül az egyes újsorok után). Míg kifejezés kicsi ” w ” a szóköz karakterekkel történő megjelölésére szolgál. A kód futtatásakor az első “k1″ változó csak a ” G ” karaktert nyomtatja ki a guru99 szóra, míg többsoros zászló hozzáadásakor a karakterlánc összes elemének első karaktereit tölti ki.

Python Regex bemutató: újra.mérkőzés (), újra.keresés (), újra.findall(), Flags

itt van a kód

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • deklaráltuk a változó xx karakterlánc ” guru99…. careerguru99….selenium ”
  • futtassa a kódot zászlók használata nélkül többsoros, ez adja a kimenet csak “g” a sorok
  • futtassa a kódot zászló “többsoros”, ha a nyomtatás ” k2 “ez adja a kimenet “g”, ” c ” és ” s ”
  • tehát a különbség láthatjuk után és hozzáadása előtt többsoros fenti példában.

hasonlóképpen más Python zászlókat is használhat, mint például a re.U (Unicode), re.L (kövesse a területi beállítást), újra.X (Megjegyzés engedélyezése) stb.

Python 2 példa

a fenti kódok Python 3 példák, ha Python 2-ben szeretne futni, fontolja meg a következő kódot.

# 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

összefoglaló

a programozási nyelv reguláris kifejezése egy speciális szöveges karakterlánc, amelyet a keresési minta leírására használnak. Ez magában foglalja a számjegyek és írásjelek és az összes speciális karakterek, mint a$#@!% stb. A kifejezés tartalmazhat literális

  • szövegillesztés
  • ismétlés
  • elágazó
  • Minta-összetétel stb.

a Pythonban a reguláris kifejezést RE-ként jelöljük (REs, regexes vagy regex minta) a Python re modulon keresztül ágyazódnak be.

  • ” re “modul tartalmazza Python elsősorban használt string keresés és manipuláció
  • is gyakran használják a weboldal “kaparás” (kivonat nagy mennyiségű adatot honlapok)
  • reguláris kifejezés módszerek közé re.mérkőzés (), újra.keresés()& re.findall ()
  • Egyéb Python Regex replace metódusok sub() és subn (), amelyek a megfelelő karakterláncok helyettesítésére szolgálnak a re
  • Python Flags-ben sok Python Regex metódus és Regex függvény egy opcionális argumentumot vesz fel Flags
  • ez a jelző módosíthatja az adott Regex minta jelentését
  • a Regex Metódusokban használt különböző Python zászlók re.M, re.Én, re.S, stb.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.