⊗pyPmREChG 39 of 129 menu

Grupy znaków w wyrażeniach regularnych Pythona

Istnieją specjalne komendy, które pozwalają wybrać od razu całe grupy znaków. Komenda \d oznacza cyfrę od 0 do 9. Komenda \w oznacza cyfrę, literę łacińską lub znak podkreślenia. Komenda \s oznacza spację lub znak spacji: spację, znak nowej linii, tabulację. Można odwrócić znaczenie komendy, pisząc dużą literę: na przykład, jeśli \d - cyfra, to \D - nie cyfra.

Przykład

Znajdźmy wszystkie cyfry:

txt = '1 12 123' res = re.sub('\d', '!', txt) print(res)

Wynik wykonania kodu:

'! !! !!!'

Przykład

Operatory powtórzenia traktują komendy-grupy jako całość, to znaczy nawiasy grupujące nie są potrzebne. W następnym przykładzie wzorzec wyszukiwania wygląda tak: cyfra od 0 do 9 jeden lub więcej razy:

txt = '1 12 123 abc @@@' res = re.sub('\d+', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! abc @@@'

Przykład

W następnym przykładzie wzorzec wyszukiwania wygląda tak: cokolwiek jeden lub więcej razy, ale nie cyfra od 0 do 9:

txt = '123abc3@@' res = re.sub('\D+', '!', txt) print(res)

Wynik wykonania kodu:

'123!3!'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: znak spacji jeden raz:

txt = '1 12 123 abc @@@' res = re.sub('\s', '!', txt) print(res)

Wynik wykonania kodu:

'1!12!123!abc!@@@'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: NIE znak spacji jeden lub więcej razy. Wszystkie podciągi, oddzielone spacjami, zostaną zastąpione na '!':

txt = '1 12 123 abc @@@' res = re.sub('\S+', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! ! !'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: cyfra lub litera jeden lub więcej razy. Wszystkie podciągi, składające się z cyfr i liter, zostaną zastąpione na '!':

txt = '1 12 123a Abc @@@' res = re.sub('\w+', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! ! @@@'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda tak: NIE cyfra i NIE litera jeden lub więcej razy. Na tę definicję w naszym przypadku trafia '@@@' i wszystkie spacje (one przecież też nie są cyframi ani literami). Zwróć uwagę na to, że na końcu jedna '!' - w nią przekształcił się ciąg ' @@@' - ze spacją na początku:

txt = '1 12 123 Abc @@@' res = re.sub('\W+', '!', txt) print(res)

Wynik wykonania kodu:

'1!12!123!Abc!'

Zadania praktyczne

Dany jest ciąg:

txt = 'a1a a2a a3a a4a a5a aba aca'

Napisz wyrażenie regularne, które znajdzie ciągi, w których na brzegach stoją litery 'a', a między nimi jedna cyfra.

Dany jest ciąg:

txt = 'a1a a22a a333a a4444a a55555a aba aca'

Napisz wyrażenie regularne, które znajdzie ciągi, w których na brzegach stoją litery 'a', a między nimi dowolna liczba cyfr.

Dany jest ciąg:

txt = 'aa a1a a22a a333a a4444a a55555a aba aca'

Napisz wyrażenie regularne, które znajdzie ciągi, w których na brzegach stoją litery 'a', a między nimi dowolna liczba cyfr (w tym również zero cyfr, to znaczy ciąg 'aa').

Dany jest ciąg:

txt = 'avb a1b a2b a3b a4b a5b abb acb'

Napisz wyrażenie regularne, które znajdzie ciągi następującego rodzaju: na brzegach stoją litery 'a' i 'b', a między nimi - nie liczba i nie spacja.

Dany jest ciąg:

txt = 'ave a#b a2b a$b a4b a5b a-b acb'

Napisz wyrażenie regularne, które znajdzie ciągi następującego rodzaju: na brzegach stoją litery 'a' i 'b', a między nimi - nie litera, nie cyfra i nie spacja.

Dany jest ciąg:

txt = 'ave a#a a2a a$a a4a a5a a-a aca'

Napisz wyrażenie regularne, które zamieni wszystkie spacje na '!'.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć