Wyciąg z Python podłoże za pomocą Regex

Wyciąg z Python podłoże za pomocą Regex

Może być kilka scenariuszy przypadków, w których konieczne jest wyodrębnienie podrzędu ze sznurka w Python. Na przykład, podczas pracy nad dużymi zestawami danych, może być konieczne uzyskanie określonych danych z pól tekstowych lub dopasować konkretny wzór w ciągu, takiego jak adres e -mail lub numer telefonu. Ponadto operacja ekstrakcji podjazdu pomaga również w przetwarzaniu tekstu i analizie.

Ten post obejmie następujące podejścia:

  • Metoda 1: Python Extract Substring za pomocą Regex w „RE.metoda wyszukiwania () ”
  • Metoda 2: Wyciąg z Pythona za pomocą Regex w „RE.Metoda match () ”
  • Metoda 3: Wyciąg z Pythona za pomocą Regex w „RE.metoda FINDALL () ”
  • Metoda 4: Wyciąg z Pythona za pomocą Regex w „RE.Metoda Findingiter () ”

Metoda 1: Python Extract Substring za pomocą Regex w „RE.metoda wyszukiwania () ”

Python „Odnośnie.szukaj()„Metoda szuka pierwszego wystąpienia instancji dodanego wzoru w ciągu ciągu i wysyła„Mecz" obiekt. Można go wywołać, gdy chcesz zlokalizować określony podłoże wewnątrz dłuższego ciągu, ale nie masz pojęcia.

Składnia

Aby użyć RE.Metoda Search (), postępuj zgodnie z podaną składnią:

Odnośnie.Wyszukaj (wzór, ciąg, flagi)

Tutaj:

  • "wzór”Reprezentuje regularność, którą chcesz wyszukać.
  • "strunowy”Odnosi się do określonego ciągu, w którym chcesz wyszukać.
  • "flagi”Reprezentuje opcjonalne parametry, takie jak tryb wielu linii, czułość przypadku itp.

Przykład 1: Wyodrębnienie podkładu tekstowego za pomocą „Re.metoda wyszukiwania () ”

Do wykorzystania „Odnośnie.szukaj()„Metoda wyodrębnienia podłańca, najpierw zaimportować„Odnośnie”Moduł. Ten moduł oferuje obsługę Regex:

import re

Zdefiniuj ciąg, z którego chcesz odzyskać podłoże:

string = 'Linuxhint to najlepsza strona internetowa samouczka' '

Następnie podaj Regex. Tutaj, "R”Wskazuje, że jest to surowy ciąg, aby traktować luzie jako dosłowne postacie i„ ”to, co najlepsze”Jest zdefiniowanym wyrażeniem regularnym lub wyrabianiem:

Regex = r'Best '

Przekaż stworzony „Regex" I "strunowy" tam.metoda wyszukiwania () i przechowuj wynikowy obiekt w „mecz”:

mecz = re.Wyszukaj (Regex, ciąg)

Teraz dodaj dany warunek, aby wyodrębnia dopasowane podłoże z „mecz„Obiekt zwrócony przez RE.metoda wyszukiwania () i wyświetl ją na konsolę:

Jeśli dopasuj:
sub_String = dopasowanie.Grupa()
Drukuj (sub_string)

Można zauważyć, że podłoże „to, co najlepsze”Został wyodrębniony przy użyciu„Grupa()„Metoda obiektu dopasowania:

Przykład 2: Wyodrębnienie podczerwień numerycznych za pomocą „Re”.metoda wyszukiwania () ”

Teraz zdefiniuj ciąg numeryczny i poszukaj pierwszego wystąpienia jednego lub więcej cyfr, przekazując „\D+”Jako Regex do„Odnośnie.szukaj()" metoda:

String = '039-6546-0987' '
Drukuj (re.Wyszukaj (r '\ d+', string))

W określonym wyrażeniu Regex:

  • "\”Jest wykorzystywany do ucieczkiD”(Charakter cyfr).
  • "+”Oznacza jedną lub dopasowuje cyfry z rzędu:

Jak widać, dopasowany obiekt został zwrócony przez „Odnośnie.szukaj()" metoda.

Metoda 2: Wyciąg z Pythona za pomocą Regex w „RE.Metoda match () ”

"Odnośnie.mecz()”Wyszuwa tylko regularność na początku ciągów i wysyła obiekt dopasowywania w przypadku udanego przeszukania. Tę metodę można wykorzystać, gdy wiesz, że podłoże występuje tylko na początku danego ciągu.

Składnia

Aby wywołać Re.Metoda match (), postępuj zgodnie z podaną składnią:

Odnośnie.dopasowanie (wzór, ciąg, flagi)

Przykład

Po pierwsze, zdefiniuj wyrażenie regularne jako „'^l… .t $'". Ta regex pasuje do strun, które zaczynają się od „L", kończyć z "T”I mają dokładnie 8 znaków.

Regex = '^l… t $' '

Następnie zadeklaruj ciąg. Przekaż to do RE.Metoda match (), wraz z wyrabianką jako argumenty:

string = 'Linuxhint'
wynik = re.dopasowanie (Regex, ciąg)

Dodaj "Jeśli inaczej”Warunek i określ odpowiednie instrukcje drukowania dla przypadków, jeśli„Mecz„Obiekt został zwrócony, czy nie:

Jeśli wynik:
Drukuj („Wyszukiwanie zostało pomyślnie wykonane”, wynik)
w przeciwnym razie:
Drukuj („Wyszukiwanie nie powiodło się.")

Wyjście

Metoda 3: Wyciąg z Pythona za pomocą Regex w „RE.metoda FINDALL () ”

„„Odnośnie.Znajdź wszystko()„Metoda Pythona wyszukuje każdą instancję wzorca w ramach podanych łańcuchów i wysyła listę wyodrębnionych podłoża. Ta metoda jest stosowana w tych scenariuszach, w których jest wymagana do pobrania wielu podłożów bez żadnej konkretnej kolejności.

Składnia

Aby wywołać Re.metoda FINDALL (), sprawdź podaną składnię:

Odnośnie.findall (wzór, ciąg, flagi)

Przykład

Zdefiniuj ciąg zawierający wartości liczbowe. Następnie określ wzór regex jako „r & D+„” Aby dopasować jedną lub więcej cyfr:

String = '4 -godzinny kurs Linuxhint Camp za 14 USD.99 '
Regex = r '\ d+'

Następnie zadzwoń do „Odnośnie.Znajdź wszystko()„Metoda i przekazuj zdefiniowany regularność i ciąg jako argumenty

Matches = re.FINDALL (Regex, String)

Teraz iteruj nad zwróconym „Mecz”Obiekt przechowywany w zmiennej dopasowania i drukuj elementy na konsoli:

Do meczu w meczach:
wydruku (dopasowanie)

Wyjście

Metoda 4: Wyciąg z Pythona za pomocą Regex w „RE.Metoda Findingiter () ”

„„Odnośnie.Finditer ()„Metoda działa tak samo jak Re.metoda FINDALL (). Zwraca jednak iterator, a nie listę podkładów. W Pythonie metodę tę można wykorzystać, gdy istnieje duży zestaw danych i nie musi przechowywać wszystkich dopasowań jednocześnie. Dokładniej, Re RE.Metoda FindIter () przetwarza wyodrębnioną podłoże pojedynczo.

Składnia

Aby wywołać Re.Metoda Findetiter (), postępuj zgodnie z podaną składnią:

Odnośnie.Finditer (wzór, ciąg, flagi)

Przykład

Najpierw utwórz ciąg. Następnie zdefiniuj wzór regex jako „r '[a-z]+'„Dopasowuje się do jednej lub więcej wielkich liter:

string = 'Linuxhint to najlepsza strona internetowa samouczka' '
Regex = r '[a-z]+'

Przekaż regularność i ciąg jako argumenty do „Odnośnie.Finditer ()”Metoda i przechowuj wynikowy obiekt dopasowania w„mecze”:

Matches = re.FINKTITER (Regex, String)

Wreszcie, iteruj nad elementami obiektowymi, wyodrębnij podłoże za pomocą metody „grupy ()” i wydrukuj na konsoli:

Do meczu w meczach:
sub_String = dopasowanie.Grupa()
Drukuj (sub_string)

Wyjście

Opracowaliśmy niezbędne podejścia związane z wyodrębnieniem substring w Pythonie.

Wniosek

Aby wyodrębnić podłoże za pomocą Regex w Python, użyj „Odnośnie.szukaj()”,„Odnośnie.mecz () ”,„ Re.FINDALL () ”lub„ re.Finditer ()”Metody. W zależności od twoich wymagań wykorzystaj „Odnośnie.szukaj()„Metoda, gdy jest wymagana do wyodrębnienia tylko pierwszej instancji regularności”, „Odnośnie.mecz()”Wyodrębnia podłoże przedstawia początek ciągu”Odnośnie.Znajdź wszystko()„Pobiera wiele podrzędnych w zależności od wzoru, a na koniec„Odnośnie.Finditer ()„Przetwarzaj wiele ciągów pojedynczo. Ten blog obejmował metody wyodrębniania podstępu w Python.