logo

Python | Rozdelenie viacerých znakov z reťazca

V Pythone sú reťazce základným dátovým typom, ktorý sa používa na ukladanie a prácu s textovými dátami. Rozdelenie reťazca na početné znaky je v Pythone častou činnosťou pri spracovaní textu. Pri kódovaní alebo improvizovaní svojich programátorských zručností ste sa určite stretli s mnohými scenármi, v ktorých ste chceli použiť rozdeliť () v Pythone nerozdeľovať iba jeden znak, ale viacero oddeľovačov naraz. V tomto článku uvidíme rôzne prístupy Reťazec Python rozdeliť viacero oddeľovačov.

  Input:   'GeeksForGeeks, is an-awesome! website'   Output:   ['GeeksForGeeks, ', 'is', 'an-awesome!', 'website']   Explanation:   In This, we are splitting the multiple delimiters from the string.>

In Python , Na rozdelenie viacerých oddeľovačov z reťazca môžeme použiť rôzne prístupy. Pomocou týchto metód je rozdelenie a manipulácia s jednotlivými znakmi z reťazca v Pythone jednoduchá.

  • Použitím Funkcia rozdelenia
  • Použitie funkcie nahradiť ()
  • Použitím re.split()
  • Použitie re.findall()

Rozdeliť reťazec viacerými oddeľovačmi pomocou funkcie Split

V Pythone môžeme rozdeliť viacero znakov z reťazca pomocou split(). Tu iterujeme cez každý oddeľovač a rozdelíme reťazec pomocou funkcia split(). Po rozdelení spojíme výsledný zoznam medzerami pomocou funkciu join(). a modifikovaný reťazec rozdelíme na základe medzier, aby sme získali požadovaný zoznam reťazcov.



Python3




string>=> 'GeeksForGeeks, | is an-awesome! website'> delimiters>=> [>','>,>'|'>,>';'>,>'!'>]> for> delimiter>in> delimiters:> >string>=> ' '>.join(string.split(delimiter))> result>=> string.split()> print>(result)>

>

>

Výkon

java mapy
['GeeksForGeeks', 'is', 'an-awesome', 'website']>

Rozdelenie Pythonu viacerými znakmi pomocou funkcie replace()

V Pythone môžeme rozdeliť viacero znakov z reťazca pomocou nahradiť (). Toto je veľmi nováčikovský spôsob rozdelenia. Nevyužíva regulárny výraz a je neefektívny, ale stále stojí za vyskúšanie. Ak poznáte znaky, ktoré chcete rozdeliť, jednoducho ich nahraďte medzerou a potom použite rozdeliť () .

Python3




data>=> 'Let's_try, this now'> # printing original string> print>(>'The original string is : '> +> data)> # Using replace() and split()> # Splitting characters in String> res>=> data.replace(>'_'>,>' '>).replace(>', '>,>' '>).split()> print>(>'The list after performing split functionality : '> +> str>(res))>

>

>

Výkon

The original string is : Let's_try, this now The list after performing split functionality : ['Let's', 'try', 'this', 'now']>

Rozdelenie Pythonu viacerými znakmi pomocou Re.split()

V Pythone môžeme rozdeliť viacero znakov z reťazca pomocou resplit(). Toto je najefektívnejšia a bežne používaná metóda na rozdelenie viacerých znakov naraz. Na tento účel využíva regulárny výraz (regulárne výrazy).

Python3


skvelý počítačový jazyk



import> re> data>=> 'techcodeview.com, is_an-awesome ! website'> print>(>'The original string is : '> +> data)> # Using re.split()> # Splitting characters in String> res>=> re.split(>', |_|-|!'>, data)> print>(>'The list after performing split functionality : '> +> str>(res))>

>

>

Výkon

The original string is : techcodeview.com, is_an-awesome ! website The list after performing split functionality : ['techcodeview.com', 'is', 'an', 'awesome ', ' website']>

Riadok re.split(‘, |_|-|!‘, data) hovorí Pythonu, aby rozdelil premenné údaje o znakoch: , alebo _ alebo alebo ! . Symbol | predstavuje resp. V regulárnych výrazoch sú niektoré symboly, ktoré sa považujú za špeciálne symboly a majú rôzne funkcie. Ak sa chcete rozdeliť na takýto symbol, musíte ho opustiť pomocou a (obrátené lomítko) a potrebuje jednu medzeru pred a za špeciálnymi znakmi.

Zoznam špeciálnych znakov, ktoré je potrebné pred použitím escapovať:

.  + * ? [ ^ ] $ ( ) { } = | :>

Príklad: V tomto kóde používame resplit () na rozdelenie znakov z reťazcov v Pythone.

ako skontrolovať veľkosť obrazovky

Python3




import> re> newData1>=> 'techcodeview.com, is_an-awesome ! app + too'> # To split '+' with one espace before and after '+' symbol and use backslash> print>(re.split(>', |_|-|!|+'>, newData1))> newData2>=> 'techcodeview.com, is_an-awesome ! app+too'> # To split '+' without one espace before and after '+' symbol and use backslash> print>(re.split(>', |_|-|!|+'>, newData2))>

>

>

Výkon

['techcodeview.com', ' is', 'an', 'awesome', ' app', 'too']>

Poznámka: Ak chcete vedieť viac o regulárnych výrazoch kliknite tu .

Rozdeliť reťazec podľa viacerých oddeľovačov pomocou re.findall()

V Pythone môžeme rozdeliť viacero znakov z reťazca pomocou refindall(). Toto je trochu tajomnejšia forma, ale šetrí čas. Používa tiež regulárny výraz, ako je uvedené vyššie, ale namiesto toho .split() metóda, používa metódu tzv . findall() . Táto metóda nájde všetky zodpovedajúce inštancie a vráti každú z nich v zozname. Tento spôsob rozdelenia je najlepšie použiť, keď nepoznáte presné znaky, podľa ktorých chcete rozdeliť.

Python3




import> re> data>=> 'This, is - another : example?!'> print>(>'The original string is : '> +> data)> # Using re.findall()> # Splitting characters in String> res>=> re.findall(r>'[w']+'>, data)> print>(>'The list after performing split functionality : '> +> str>(res))>

>

>

Výkon

The original string is : This, is - another : example?! The list after performing split functionality : ['This', 'is', 'another', 'example']>

Tu kľúčové slovo [w’]+ označuje, že nájde všetky výskyty abecedy alebo podčiarkovníka(_) jedného alebo viacerých a vráti ich v zozname. Poznámka: [w’]+ sa nerozdelí po podčiarkovníku ( _ ), pretože vyhľadáva abecedy aj podčiarkovníky.

Príklad: V tomto kóde používame refindall () na rozdelenie znakov z reťazcov Python.

Python3




bash elf
import> re> testData>=> 'This, is - underscored _ example?!'> print>(re.findall(r>'[w']+'>, testData))>

>

>

Výkon

['This', 'is', 'underscored', '_', 'example']>

Triedy postáv

Regex cheat sheet o popise postavy

Trieda stenografických znakov predstavuje
d Ľubovoľná číslica od 0 do 9
D Akýkoľvek znak, ktorý nie je číselnou číslicou od 0 do 9
In Akékoľvek písmeno, číslica alebo znak podčiarknutia
IN Akýkoľvek znak, ktorý nie je písmenom, číslicou alebo znakom podčiarknutia
s Ľubovoľná medzera, tabulátor alebo znak nového riadku
S Akýkoľvek znak, ktorý nie je medzerou, tabulátorom alebo novým riadkom