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 |