Maybaygiare.org

Blog Network

Regex Pythona: re.match (), re.search (), re.findall() z przykładem

co to jest wyrażenie regularne w Pythonie?

Wyrażenie regularne (RE) w języku programowania jest specjalnym ciągiem tekstowym używanym do opisania wzorca wyszukiwania. Jest niezwykle przydatny do wydobywania informacji z tekstu, takich jak kod, pliki, dziennik, arkusze kalkulacyjne, a nawet dokumenty.

podczas korzystania z wyrażenia regularnego Pythona pierwszą rzeczą jest rozpoznanie, że wszystko jest zasadniczo znakiem, a my piszemy wzorce, aby dopasować określoną sekwencję znaków, zwaną również ciągiem znaków. Litery Ascii lub łacińskie to te, które znajdują się na klawiaturach, a Unicode jest używany do dopasowania tekstu obcego. Zawiera cyfry i znaki interpunkcyjne oraz wszystkie znaki specjalne, takie jak$#@!% itp.

w tym samouczku RegEx Pythona nauczymy się –

  • składnia wyrażenia regularnego
  • przykład wyrażenia w+ I ^
  • przykład wyrażenia \s W re.podziel funkcję
  • używając metod wyrażenia regularnego
  • używając re.match ()
  • znajdowanie wzorca w tekście (re.search ())
  • używając re.findall dla tekstu
  • flagi Pythona
  • przykład re.M lub flagi Wielowierszowe

na przykład, wyrażenie regularne Pythona może powiedzieć programowi, aby wyszukał określony tekst z ciągu znaków, a następnie wydrukował wynik. Wyrażenie może zawierać

  • dopasowanie tekstu
  • powtórzenie
  • rozgałęzienie
  • wzór-kompozycja itp.

Wyrażenie regularne lub RegEx w Pythonie jest oznaczane jako RE (REs, regexes lub regex pattern) są importowane przez moduł re. Python wspiera wyrażenia regularne poprzez biblioteki. RegEx w Pythonie obsługuje różne rzeczy, takie jak modyfikatory, identyfikatory i białe znaki.

identyfikatory modyfikatory znaki spacji wymagane wyjście
\d= dowolna liczba (cyfra) \d reprezentuje cyfrę.Ex: \ D{1,5} zadeklaruje cyfrę pomiędzy 1,5 jak 424,444,545 itd. \N = nowa linia . + * ? $ ^ () {} | \
\d= wszystko oprócz liczby (niecyfrowej) + = pasuje do 1 lub więcej \s= spacja
\s = spacja (tabulator,spacja,nowa linia itp. ? = 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} = ilość poprzedzającego kodu —————–

składnia wyrażenia regularnego(RE)

import re
  • moduł”re” dołączony do Pythona głównie używany do wyszukiwania i manipulacji łańcuchami
  • również często używany do „skrobania” strony internetowej (wyciąganie dużej ilości z danych ze stron internetowych)

od tego prostego ćwiczenia rozpoczniemy samouczek wyrażeń za pomocą wyrażeń (w+) I (^).

przykład wyrażenia w+ i ^

  • „^”: To wyrażenie pasuje do początku łańcucha
  • ” w+”: to wyrażenie pasuje do alfanumerycznego znaku w łańcuchu

tutaj zobaczymy RegEx Pythona przykład jak możemy użyć wyrażenia w+ i ^ w naszym kodzie. Pokrywamy funkcję re.findall () w Pythonie, później w tym samouczku, ale przez chwilę po prostu skupiamy się na \ w+ i \ ^ wyrażenie.

na przykład dla naszego łańcucha „guru99, education is fun” jeśli wykonamy kod z w+ i^, da to wyjście „guru99”.

Python Regex Tutorial: re.match (), re.search (), re.findall (), Flags

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

pamiętaj, że jeśli usuniesz znak +z w+, wynik się zmieni i Da tylko pierwszy znak pierwszej litery, tj.

przykład wyrażenia \s W re.funkcja split

  • „s”: to wyrażenie jest używane do tworzenia spacji w łańcuchu

aby zrozumieć, jak działa to wyrażenie regularne w Pythonie, zaczynamy od prostego przykładu wyrażenia regularnego Pythona funkcji split. W przykładzie podzieliliśmy każde słowo za pomocą ” re.split ” funkcja i w tym samym czasie użyliśmy wyrażenia \s, które pozwala analizować każde słowo w łańcuchu oddzielnie.

Python Regex Tutorial: re.match (), re.search (), re.findall(), Flags

kiedy wykonasz ten kod, da ci wynik .

teraz zobaczmy, co się stanie, jeśli usuniesz „\” z S. na wyjściu nie ma alfabetu 's’, dzieje się tak dlatego, że usunęliśmy '\’ z ciągu znaków, a on oblicza „s” jako zwykły znak i w ten sposób dzieli słowa Wszędzie tam, gdzie znajdzie „s” W ciągu znaków.

Python Regex Tutorial: re.match (), re.search (), re.findall(), Flags

podobnie, istnieje szereg innych wyrażeń regularnych Pythona, których można używać na różne sposoby w Pythonie, jak \D,\D,$,\., \B, itd.

Oto kompletny kod

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')))

następnie zobaczymy typy metod, które są używane z wyrażeniem regularnym w Pythonie.

używając metod wyrażenia regularnego

pakiet „re” udostępnia kilka metod do wykonywania zapytań na łańcuchu wejściowym. Zobaczymy metody re w Pythonie:

  • re.match ()
  • re.search ()
  • re.findall ()

Uwaga: bazując na wyrażeniach regularnych, Python oferuje dwie różne prymitywne operacje. Metoda match sprawdza dopasowanie tylko na początku łańcucha, podczas gdy wyszukiwanie sprawdza dopasowanie w dowolnym miejscu łańcucha.

re.match ()

re.funkcja match () re w Pythonie przeszukuje wzorzec wyrażenia regularnego i zwraca pierwsze wystąpienie. Metoda Python RegEx Match sprawdza dopasowanie tylko na początku łańcucha. Tak więc, jeśli dopasowanie zostanie znalezione w pierwszej linii, zwraca obiekt match. Ale jeśli dopasowanie zostanie znalezione w innej linii, funkcja dopasowania Regex Pythona zwraca null.

na przykład rozważ następujący kod Pythona re.funkcja match (). Wyrażenie ” w+ „i” \w ” będzie pasować do słów zaczynających się na literę 'g’, a następnie wszystko, co nie jest rozpoczynane na 'g’, nie jest identyfikowane. Aby sprawdzić dopasowanie dla każdego elementu z listy lub łańcucha, uruchamiamy forloop w tym Pythonie re.przykład match ().

Python Regex Tutorial: re.match (), re.search (), re.findall (), flagi

re.search (): znalezienie wzorca w tekście

re.funkcja search () przeszukuje wzorzec wyrażenia regularnego i zwróci pierwsze wystąpienie. W przeciwieństwie do Pythona re.match(), sprawdzi wszystkie linie wejściowego łańcucha. Pyton re.funkcja search () zwraca obiekt match, gdy wzór zostanie znaleziony, oraz „null”, jeśli wzór nie został znaleziony

aby użyć funkcji search (), musisz najpierw zaimportować Python re module, a następnie wykonać kod. Pyton re.funkcja search() pobiera „wzorzec” i „tekst”do skanowania z naszego głównego ciągu

Python Regex Tutorial: re.match (), re.search (), re.findall(), flagi

na przykład tutaj szukamy dwóch dosłownych ciągów „software testing” „guru99”, w łańcuchu tekstowym „software Testing is fun”. W przypadku „testowania oprogramowania” znaleźliśmy dopasowanie, dlatego zwraca wyjście Pythona re.przykład search () jako „found a match”, podczas gdy dla słowa” guru99 „nie mogliśmy znaleźć w string, dlatego zwraca wyjście jako”No match”.

re.findall ()

moduł findall () służy do wyszukiwania „wszystkich” wystąpień pasujących do podanego wzorca. W przeciwieństwie do tego, moduł search () zwróci tylko pierwsze wystąpienie pasujące do podanego wzorca. findall () będzie iterować nad wszystkimi wierszami pliku i zwróci wszystkie Nie nakładające się dopasowania wzorca w jednym kroku.

na przykład mamy tutaj listę adresów e-mail i chcemy, aby wszystkie adresy e-mail zostały pobrane z listy, używamy metody re.findall() w Pythonie. Znajdzie wszystkie adresy e-mail z listy.

Python Regex Tutorial: re.match (), re.search (), re.findall(), Flags

Oto kompletny kod na przykład 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)

flagi Pythona

wiele metod i funkcji Regex Pythona przyjmuje opcjonalny argument o nazwie Flags. Flagi te mogą zmienić znaczenie podanego wzorca Regex Pythona. Aby je zrozumieć, zobaczymy jeden lub dwa przykłady tych flag.

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 lub flagi Wielowierszowe

w wielowierszowym znak wzorca pasuje do pierwszego znaku łańcucha i początku każdej linii (następującej bezpośrednio po każdej nowej linii). Podczas gdy wyrażenie małe ” w ” jest używane do oznaczania spacji znakami. Po uruchomieniu kodu pierwsza zmienna” k1 „wypisuje tylko znak” g ” dla słowa guru99, podczas gdy po dodaniu flagi wielowierszowej pobiera pierwsze znaki wszystkich elementów w łańcuchu.

Python Regex Tutorial: re.match (), re.search (), re.findall(), flagi

oto Kod

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • zadeklarowaliśmy zmienną xx dla łańcucha ” guru99…. careerguru99 … selenium „
  • Uruchom kod bez użycia FLAG multiline, daje wyjście tylko ’ g 'z linii
  • Uruchom kod z flagą „multiline”, po wydrukowaniu’ k2 'daje wyjście jako’ g’,’ c 'i’ s ’
  • tak, różnica możemy zobaczyć PO i przed dodaniem wielu linii w powyższym przykładzie.

podobnie, możesz również użyć innych flag Pythona, takich jak re.U (Unicode), re.L (Follow locale), re.X (Zezwól na komentarz) itp.

przykład Pythona 2

powyższe kody są przykładami Pythona 3, Jeśli chcesz uruchomić w Pythonie 2 rozważ następujący 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

podsumowanie

Wyrażenie regularne w języku programowania jest specjalnym ciągiem tekstowym używanym do opisywania wzorca wyszukiwania. Zawiera cyfry i znaki interpunkcyjne oraz wszystkie znaki specjalne, takie jak$#@!% itp. Wyrażenie może zawierać dosłowne

  • dopasowanie tekstu
  • powtórzenie
  • rozgałęzienie
  • wzór-kompozycja itd.

w Pythonie Wyrażenie regularne jest oznaczane jako RE (REs, wyrażenia regularne lub wzorzec regex) są osadzone za pomocą modułu Python re.

  • moduł”re” zawarty w Pythonie używany głównie do wyszukiwania i manipulacji łańcuchami
  • używany również często do „skrobania” stron internetowych (wyciągania dużej ilości danych ze stron internetowych)
  • metody wyrażeń regularnych obejmują re.match (), re.search()& re.findall ()
  • Inne metody zastępowania wyrażeń regularnych Pythona to sub () i subn (), które są używane do zastępowania pasujących łańcuchów w re
  • flagi Pythona wiele metod Regex Pythona i funkcji Regex przyjmuje opcjonalny argument o nazwie Flags
  • te flagi mogą modyfikować znaczenie podanego wzorca Regex
  • różne flagi Pythona używane w metodach Regex to re.M, re.Ja, re.S, itp.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.