RegEx w Pythonie
- Poprzednia strona JSON w Pythonie
- Następna strona PIP w Pythonie
RegEx, inaczej wyrażenia regularne, to sekwencja znaków tworząca wzorzec wyszukiwania.
RegEx można używać do sprawdzania, czy ciąg znaków zawiera określony wzorzec wyszukiwania.
RegEx
Python oferuje moduł o nazwie re
wbudowanego pakietu, który można używać do przetwarzania wyrażeń regularnych.
Importuj re
Moduł:
import re
RegEx w Pythonie
Importuj re
Po zaimportowaniu modułu, można zacząć używać wyrażeń regularnych:
Przykład
Przeszukaj ciąg, aby zobaczyć, czy zaczyna się od "China" i kończy na "country":
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
Funkcje RegEx
re
Moduł dostarcza zestaw funkcji, które pozwalają na przeszukiwanie ciągów w celu dopasowania:
Funkcja | Opis |
---|---|
findall | Zwraca listę wszystkich dopasowań |
search | Zwraca obiekt Match, jeśli w dowolnym miejscu ciągu istnieje dopasowanie |
split | Zwraca listę ciągów rozdzielonych dopasowaniami |
sub | Zastąpienie jednego lub kilku dopasowań ciągiem |
Metaznaki
Metaznaki to znaki o specjalnym znaczeniu:
Znak | Opis | Przykład | TIY |
---|---|---|---|
[] | Grupa znaków | "[a-m]" | Spróbuj |
\ | Przykładowe sekwencje specjalne (może być również używane do unikania specjalnych znaków) | "\d" | Spróbuj |
. | Jakikolwiek znak (z wyjątkiem znaku nowej linii) | "he..o" | Spróbuj |
^ | Zacząty | "^hello" | Spróbuj |
$ | Zakończony | "world$" | Spróbuj |
* | Zero lub więcej wystąpień | "aix*" | Spróbuj |
+ | Jedno lub więcej wystąpień | "aix+" | Spróbuj |
{} | Dokładnie określona liczba wystąpień | "al{2}" | Spróbuj |
| | którykolwiek z nich | "spadło|zostało" | Spróbuj |
()) | Złapanie i grupowanie |
Specjalne sekwencje
Specjalne sekwencje to \
po którym następuje któryś z poniższych znaków, ma specjalne znaczenie:
Znak | Opis | Przykład | TIY |
---|---|---|---|
\A | Zwraca dopasowanie, jeśli określony znak znajduje się na początku ciągu | "\AThe" | Spróbuj |
\b | Zwraca dopasowanie, gdzie określony znak znajduje się na początku lub końcu słowa |
r"\bdeszcz" r"deszcz\b" |
Spróbuj Spróbuj |
\B | Zwraca dopasowanie, gdzie określony znak istnieje, ale nie jest na początku (lub końcu) słowa |
r"\Bdeszcz" r"deszcz\B" |
Spróbuj Spróbuj |
\d | Zwraca dopasowanie, gdzie ciąg zawiera cyfry (0-9) | "\d" | Spróbuj |
\D | Zwraca dopasowanie, gdzie ciąg nie zawiera cyfr | "\D" | Spróbuj |
\s | Zwraca dopasowanie, gdzie ciąg zawiera znaki białe | "\s" | Spróbuj |
\S | Zwraca dopasowanie, gdzie ciąg nie zawiera znaków białych | "\S" | Spróbuj |
\w | Zwraca dopasowanie, gdzie ciąg zawiera jakieś znaki słowne Znaków od a do Z, cyfr od 0 do 9 oraz znak podkreślenia _ |
"\w" | Spróbuj |
\W | Zwraca dopasowanie, gdzie ciąg nie zawiera żadnych znaków słownych | "\W" | Spróbuj |
\Z | Zwraca dopasowanie, jeśli określony znak znajduje się na końcu ciągu | "Hiszpania\Z" | Spróbuj |
Zbiór(Set)
Zbiór (Set) to para nawiasów kwadratowych []
w grupie znaków, które mają specjalne znaczenie:
Zbiór | Opis | Spróbuj |
---|---|---|
[arn] | Zwraca dopasowanie, które zawiera jeden z podanych znaków (a, r lub n) | Spróbuj |
[a-n] | Zwraca dopasowania wszystkich małych liter między a i n | Spróbuj |
[^arn] | Zwraca dopasowania zawierające dowolny znak oprócz a, r i n | Spróbuj |
[0123] | Zwraca dopasowania zawierające dowolny z podanych cyfr (0, 1, 2 lub 3) | Spróbuj |
[0-9] | Zwraca dopasowania wszystkich cyfr między 0 a 9 | Spróbuj |
[0-5][0-9] | Zwraca dopasowania wszystkich cyfr między 0 a 9 | Spróbuj |
[a-zA-Z] | Zwraca dopasowania wszystkich znaków między a i z, małych lub dużych liter | Spróbuj |
[+] | W zbiorze, +, *, ., |, (), $, {} nie mają specjalnego znaczenia, więc [+] oznacza: zwraca dopasowania wszystkich + znaków w ciągu znaków | Spróbuj |
Funkcja findall()
findall()
Funkcja zwraca listę zawierającą wszystkie dopasowania.
Przykład
Wydrukuj listę wszystkich dopasowań:
import re str = "China is a great country" x = re.findall("a", str) print(x)
Ta lista zawiera dopasowania w kolejności, w której są znalezione.
Jeśli nie znaleziono dopasowania, zwraca pustą listę:
Przykład
Jeśli nie znaleziono dopasowania, zwraca pustą listę:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
Funkcja search()
search()
Funkcja szuka dopasowań w ciągu znaków, zwracając obiekt Match, jeśli istnieje dopasowanie.
Jeśli istnieje kilka dopasowań, zwraca tylko pierwsze dopasowanie:
Przykład
Szukaj pierwszego znaku białej przestrzeni w ciągu znaków:
import re str = "China is a great country" x = re.search("\s", str) print("The first white-space character is located in position:", x.start())
Jeśli nie znaleziono dopasowania, zwrócona wartość Brak
:
Przykład
Przeprowadź wyszukiwanie bez zwracania dopasowania:
import re str = "China is a great country" x = re.search("USA", str) print(x)
Funkcja split()
split()
Funkcja zwraca listę, w której ciąg znaków jest rozbijany przy każdym dopasowaniu:
Przykład
Rozdziel ciąg znaków przy każdym znaku białej przestrzeni:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Możesz określić: maxsplit
Parametr do kontrolowania liczby wystąpień:
Przykład
Rozdziel ciąg znaków tylko przy pierwszym wystąpieniu:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
Funkcja sub()
sub()
Funkcja zamienia dopasowanie na wybrany tekst:
Przykład
Zastąp każdy znak białej przestrzeni cyfrą 9:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
Możesz określić: count
Parametr do kontrolowania liczby zastępów:
Przykład
Zastąp pierwsze dwa wystąpienia:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Obiekt Match
Obiekt Match jest obiektem zawierającym informacje o wyszukiwaniu i wynikach.
Komentarz:Zwrócona wartość, jeśli nie ma dopasowań Brak
zamiast obiektu Match.
Przykład
Wykonanie zwróci obiekt Match wyszukiwania:
import re str = "China is a great country" x = re.search("a", str) print(x) # Wydrukuje obiekt
Obiekt Match oferuje atrybuty i metody do uzyskania informacji o wyszukiwaniu i wynikach:
span()
Zwrócony krotka zawiera pozycje początkową i końcową dopasowania.string
Zwróć ciąg przekazany do funkcjigroup()
Zwróć dopasowaną część ciągu
Przykład
Wydrukuj pozycję pierwszego dopasowania (poczatek i koniec)
Wyszukiwanie wyrażeń regularnych zaczynających się od dużej litery "C"
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Przykład
Wydrukuj ciąg przekazany do funkcji:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Przykład
Wydrukuj dopasowaną część ciągu.
Wyszukiwanie wyrażeń regularnych zaczynających się od dużej litery "C"
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Komentarz:Zwrócona wartość, jeśli nie ma dopasowań Brak
zamiast obiektu Match.
- Poprzednia strona JSON w Pythonie
- Następna strona PIP w Pythonie