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 () ”
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:
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 reZdefiniuj 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: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' 'W określonym wyrażeniu Regex:
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'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: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 '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: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' '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: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.