Moduł Regular Expressions(RE) określa zestaw ciągów(pattern), które do niego pasują.
Aby zrozumieć analogię RE, MetaCharacters są przydatne, ważne i będą używane w funkcjach modułu re.
Istnieje w sumie 14 metacharakterów i będą one omawiane w miarę ich stosowania w funkcjach:
\ Used to drop the special meaning of character following it (discussed below) Represent a character class^ Matches the beginning$ Matches the end. Matches any character except newline? Matches zero or one occurrence.| Means OR (Matches with any of the characters separated by it.* Any number of occurrences (including 0 occurrences)+ One or more occurrences{} Indicate number of occurrences of a preceding RE to match.() Enclose a group of REs
- Funkcja compile()
Wyrażenia regularne są kompilowane do obiektów wzorca, które posiadają metody do różnych operacji, takich jak wyszukiwanie dopasowań wzorca czy wykonywanie podstawień łańcuchów.
.
import
re
p
=
re.
compile
(
''
)
print
(p.findall(
"Aye, said Mr. Gibenson Stark"
))
Wyjście:
Zrozumienie wyjścia:
Pierwszym wystąpieniem jest 'e’ w „Aye”, a nie 'A’, ponieważ wielkość liter ma znaczenie.
Następnym wystąpieniem jest 'a’ w „said”, potem 'd’ w „said”, następnie 'b’ i 'e’ w „Gibenson”, ostatnie 'a’ pasuje do „Stark”.
Znak metacharakteru backslash '\’ ma bardzo ważną rolę, ponieważ sygnalizuje różne sekwencje. Jeśli odwrotny ukośnik ma być użyty bez jego specjalnego znaczenia jako metaznak, użyj ’
Zestaw klasy będzie pasował do każdego znaku białego spacji, ’,’, lub,’.
Wyjście:
Wyjście:
.
import
re
p
=
re.
compile
(
'ab*'
)
print
(p.findall(
"ababbaabbb"
))
Wyjście:
Zrozumienie wyjścia:
Naszym RE jest ab*, któremu 'a’ towarzyszy dowolna liczba 'b’, począwszy od 0.
Wyjście 'ab’, jest poprawne ze względu na pojedyncze 'a’, któremu towarzyszy pojedyncze 'b’.
Wpisanie „abb”, jest ważne z powodu pojedynczego „a”, któremu towarzyszą 2 „b”.
Wprowadzenie „a”, jest ważne z powodu pojedynczego „a”, któremu towarzyszy 0 „b”.
Wynik 'abbb’, jest ważny z powodu pojedynczego 'a’, któremu towarzyszą 3 'b’.
- Funkcja split()
Podziel łańcuch przez występowanie znaku lub wzorca, po znalezieniu tego wzorca, pozostałe znaki z łańcucha są zwracane jako część listy wynikowej.
Syntaktyka :
re.split(pattern, string, maxsplit=0, flags=0)
Pierwszy parametr, wzorzec oznacza wyrażenie regularne, łańcuch jest podanym łańcuchem, w którym będzie poszukiwany wzorzec i w którym nastąpi podział, maxsplit, jeśli nie jest podane, jest uważane za zero '0′, a jeśli podana jest jakakolwiek niezerowa wartość, to występuje co najwyżej tyle podziałów. Jeśli maxsplit = 1, to łańcuch zostanie podzielony tylko raz, dając w wyniku listę o długości 2. Flagi są bardzo przydatne i mogą pomóc w skróceniu kodu, nie są niezbędnymi parametrami, np: flags = re.IGNORECASE, W tym podziale, wielkość liter będzie ignorowana.
Wyjście:
Wyjście:
- Funkcja sub()
Syntaktyka:
re.sub(pattern, repl, string, count=0, flags=0)
'sub’ w funkcji oznacza SubString, pewien wzorzec wyrażenia regularnego jest wyszukiwany w podanym stringu(3. parametr), a po znalezieniu wzorca substring jest zastępowany przez repl(2. parametr), count sprawdza i utrzymuje liczbę powtórzeń tej czynności.
Wyjście
S~*ject has ~*er booked alreadyS~*ject has Uber booked alreadyS~*ject has Uber booked alreadyBaked Beans & Spam
- Funkcja subn()
Syntaktyka:
re.subn(pattern, repl, string, count=0, flags=0)
subn() jest podobna do sub() na wszystkie sposoby, z wyjątkiem sposobu dostarczania danych wyjściowych. Zwraca tuple z liczbą całkowitych zamian i nowym łańcuchem, a nie tylko łańcuchem.
Wyjście
('S~*ject has Uber booked already', 1)('S~*ject has ~*er booked already', 2)Length of Tuple is: 2S~*ject has ~*er booked already
- Funkcja escape()
Syntaktyka:
re.escape(string)
Zwraca łańcuch ze wszystkimi niealfanumerycznymi znakami odwrotnymi, jest to przydatne, jeśli chcesz dopasować arbitralny literalny łańcuch, który może mieć w sobie metaznaki wyrażenia regularnego.
.
import
re
print
(re.escape(
"This is Awseome even 1 AM"
))
print
(re.escape(
"I Asked what is this , he said \t ^WoW"
))
Wyjście
This\ is\ Awseome\ even\ 1\ AMI\ Asked\ what\ is\ this\ \,\ he\ said\ \ \ \^WoW
Ten artykuł został napisany przez Piyush Doorwar. Jeśli podoba Ci się GeeksforGeeks i chciałbyś wnieść swój wkład, możesz również napisać artykuł używając contribute.geeksforgeeks.org lub wysłać artykuł pocztą na adres [email protected]. Zobacz, jak twój artykuł pojawia się na stronie głównej GeeksforGeeks i pomóż innym Geekom.
Pisz komentarze, jeśli znajdziesz coś niepoprawnego lub chcesz się podzielić większą ilością informacji na temat poruszony powyżej.
Uwaga geek! Wzmocnij swoje fundamenty dzięki kursowi Python Programming Foundation i naucz się podstaw.
Na początek przygotowania do rozmowy kwalifikacyjnej Wzmocnij swoje koncepcje struktur danych dzięki kursowi Python DS.