⊗pyPmREChS 40 of 129 menu

Zestawy znaków w wyrażeniach regularnych Pythona

Grupy znaków \d i \w nie są zbyt elastyczne. Nawet takie proste zadanie, jak znaleźć wszystkie litery, ale nie cyfry - nie może być przez nie rozwiązane. Do takich zadań należy używać nawiasów kwadratowych, reprezentujących operację 'lub'.

Nawiasy kwadratowe zastępują jeden znak, dowolny z wymienionych wewnątrz. Na przykład, w ten sposób: x[abc]x - mówimy, że na brzegach muszą stać litery x, a wewnątrz - jeden znak: lub 'a', lub 'b', lub 'c'.

Po nawiasach kwadratowych można pisać operatory powtórzeń. Na przykład, w ten sposób: x[abc]+x - mówimy, że wewnątrz x może być dowolna liczba znaków 'a', 'b' i 'c' - w dowolnych kombinacjach.

Można nie tylko wymieniać znaki, ale tworzyć grupy znaków, zapisując między dwoma znakami myślnik. Na przykład, w ten sposób: [a-d] - otrzymujemy wszystkie znaki od 'a' do 'd'.

Spójrzmy na przykłady.

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'a' do 'z':

<+Python+> txt = 'xax xbx xcx x@x' res = re.sub('x[a-z]x', '!', txt) print(res) <-python->

Wynik wykonania kodu:

'! ! ! x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'a' do 'k':

txt = 'xax xbx xmx x@x' res = re.sub('x[a-k]x', '!', txt) print(res)

Wynik wykonania kodu:

'! ! xmx x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'A' do 'Z':

txt = 'xax xBx xcx x@x' res = re.sub('x[A-Z]x', '!', txt) print(res)

Wynik wykonania kodu:

'xax ! xcx x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna cyfra od 0 do 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[0-9]x', '!', txt) print(res)

Wynik wykonania kodu:

'xax ! ! ! x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna cyfra od 3 do 7:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[3-7]x', '!', txt) print(res)

Wynik wykonania kodu:

'xax x1x ! ! x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'a' do 'z' lub cyfra od 1 do 9:

txt = 'xax x1x x3x x5x x@x' res = re.sub('x[a-z1-9]x', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! ! x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'a' do 'z' lub litera od 'A' do 'Z':

txt = 'xax xBx xcx x5x x@x' res = re.sub('x[a-zA-Z]x', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! x5x x@x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x dowolna litera od 'a' do 'z' lub cyfry 1, 2:

txt = 'xax xbx x1x x2x x3x' res = re.sub('x[a-z12]x', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! ! x3x'

Przykład

W tym przykładzie wzorzec wyszukiwania wygląda następująco: pomiędzy x litery od 'a' do 'z' w liczbie od 1 i więcej:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]+x', '!', txt) print(res)

Wynik wykonania kodu:

'xx ! ! ! x123x xa3x'

Przykład

Sprawmy, aby liczba liter mogła być również zero:

txt = 'xx xabesx xaadx x123x xa3x' res = re.sub('x[a-z]*x', '!', txt) print(res)

W wyniku otrzymamy:

'! ! ! ! x123x xa3x'

Przykład

Wewnątrz nawiasów kwadratowych można również wskazywać znaki specjalne. Znajdźmy sekwencję liter i cyfr, powtarzającą się zero lub więcej razy:

txt = 'xx x@x xadx xas12x xa3x' res = re.sub('x[a-z\d]*x', '!', txt) print(res)

Wynik wykonania kodu:

'! x@x ! ! !'

Przykład

Jeśli potrzebujemy wskazać jeszcze jedne nawiasy kwadratowe, to również musimy je poprzedzić znakiem ucieczki:

txt = 'xx xrx xas[]x x3x' res = re.sub('x[a-z\[\]]*x', '!', txt) print(res)

Wynik wykonania kodu:

'! ! ! x3x'

Zadania praktyczne

Dany jest ciąg:

txt = 'aba aea aca aza axa'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - litera 'b', 'e' lub 'x'.

Dany jest ciąg:

txt = 'a1a a3a a7a a9a aba'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - cyfra od 3 do 6.

Dany jest ciąg:

txt = 'aba aea afa aha aga'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - litera od 'a' do 'g'.

Dany jest ciąg:

txt = 'aba aea afa aha aga'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - litera od 'a' do 'f' i od 'j' do 'z'.

Dany jest ciąg:

txt = 'aAa aea aEa aJa a3a'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - litera od 'a' do 'f' i od 'A' do 'D'.

Dany jest ciąg:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - małe litery łacińskie, nie dotykając pozostałych.

Dany jest ciąg:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - małe i duże litery łacińskie, nie dotykając pozostałych.

Dany jest ciąg:

txt = 'aAXa aeffa aGha aza ax23a a3sSa'

Napisz wyrażenie regularne, które znajdzie według następującego wzorca: na brzegach stoją litery 'a', a między nimi - małe litery łacińskie i cyfry, nie dotykając pozostałych.

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ć