Pythona | Podziel wiele znaków z ciągu
W Pythonie ciągi są podstawowym typem danych używanym do przechowywania danych tekstowych i pracy z nimi. Dzielenie ciągu na wiele znaków jest częstą czynnością przetwarzania tekstu w Pythonie. Kodując lub improwizując swoje umiejętności programowania, z pewnością natknąłeś się na wiele scenariuszy, w których chciałeś skorzystać podział() w Pythonie, aby nie dzielić tylko na jeden znak, ale na wiele ograniczników jednocześnie. W tym artykule zobaczymy różne podejścia do tego problemu Ciąg Pythona podziel wiele ograniczników.
Input: 'GeeksForGeeks, is an-awesome! website' Output: ['GeeksForGeeks, ', 'is', 'an-awesome!', 'website'] Explanation: In This, we are splitting the multiple delimiters from the string.
W Pyton , Możemy zastosować różne podejścia do rozdzielenia wielu ograniczników z ciągu. Dzięki tym metodom dzielenie i manipulowanie pojedynczymi znakami z łańcucha w Pythonie jest proste.
- Za pomocą Funkcja podziału
- Używanie funkcji zamiany()
- Za pomocą ponownie.split()
- Używanie re.findall()
Podziel ciąg przez wiele ograniczników za pomocą funkcji podziału
W Pythonie możemy podzielić wiele znaków z ciągu za pomocą metody split(). Tutaj iterujemy po każdym ograniczniku i dzielimy ciąg za pomocą funkcja podziału(). Po podzieleniu łączymy powstałą listę spacjami za pomocą funkcja dołączenia(). i dzielimy zmodyfikowany ciąg na podstawie białych znaków, aby uzyskać żądaną listę ciągów.
Python3
string> => 'GeeksForGeeks, | is an-awesome! website'> delimiters> => [> ','> ,> '|'> ,> ';'> ,> '!'> ]> for> delimiter> in> delimiters:> > string> => ' '> .join(string.split(delimiter))> result> => string.split()> print> (result)> |
Wyjście
['GeeksForGeeks', 'is', 'an-awesome', 'website']
Python podzielony na wiele znaków za pomocą funkcji zamiany ()
W Pythonie możemy podzielić wiele znaków z ciągu za pomocą zastępować(). To bardzo początkujący sposób na wykonanie podziału. Nie korzysta z wyrażeń regularnych i jest nieefektywny, ale nadal warto spróbować. Jeśli znasz postacie, na które chcesz podzielić, po prostu zamień je spacją, a następnie użyj podział() .
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))> |
Wyjście
The original string is : Let's_try, this now The list after performing split functionality : ['Let's', 'try', 'this', 'now']
Python podzielony przez wiele znaków za pomocą Re.split()
W Pythonie możemy podzielić wiele znaków z ciągu za pomocą ponowny podział(). Jest to najskuteczniejsza i najczęściej stosowana metoda dzielenia wielu znaków jednocześnie. W tym celu wykorzystuje regex (wyrażenia regularne).
Python3
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))> |
Wyjście
The original string is : techcodeview.com, is_an-awesome ! website The list after performing split functionality : ['techcodeview.com', 'is', 'an', 'awesome ', ' website']
Linia re.split(‘, |_|-|!’, data) mówi Pythonowi, aby podzielił dane zmienne na znaki: , Lub _ Lub – Lub ! . Symbol | reprezentuje lub. W wyrażeniu regularnym istnieje kilka symboli, które są traktowane jako symbole specjalne i mają różne funkcje. Jeśli chcesz podzielić na taki symbol, musisz uciec od niego za pomocą a (ukośnik odwrotny) i potrzebuje jednej spacji przed i po znakach specjalnych.
Lista znaków specjalnych, które należy zmienić przed ich użyciem:
. + * ? [ ^ ] $ ( ) { } = | : Przykład: W tym kodzie używamy resplit() do dzielenia znaków z ciągów w Pythonie.
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))> |
Wyjście
['techcodeview.com', ' is', 'an', 'awesome', ' app', 'too']
Notatka: Aby dowiedzieć się więcej o regex Kliknij tutaj .
Podziel ciąg przez wiele ograniczników za pomocą funkcji re.findall()
W Pythonie możemy podzielić wiele znaków z ciągu za pomocą refindall(). Jest to nieco bardziej tajemnicza forma, ale oszczędza czas. Korzysta również z wyrażenia regularnego, jak powyżej, ale zamiast .podział() metoda, wykorzystuje metodę zwaną . Znajdź wszystko() . Ta metoda znajduje wszystkie pasujące wystąpienia i zwraca każde z nich na liście. Ten sposób podziału najlepiej sprawdza się, gdy nie znasz dokładnie znaków, na które chcesz dokonać podziału.
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))> |
Wyjście
The original string is : This, is - another : example?! The list after performing split functionality : ['This', 'is', 'another', 'example']
Tutaj słowo kluczowe [w’]+ wskazuje, że znajdzie wszystkie wystąpienia alfabetów lub podkreślenia (_) jedno lub więcej i zwróci je na liście. Notatka: [w’]+ nie zostanie podzielony na znak podkreślenia( _ ) podczas wyszukiwania alfabetów i podkreśleń.
Przykład: W tym kodzie używamy refindall() do dzielenia znaków z ciągów znaków Pyton.
Python3
import> re> testData> => 'This, is - underscored _ example?!'> print> (re.findall(r> '[w']+'> , testData))> |
Wyjście
['This', 'is', 'underscored', '_', 'example']
Klasy postaci
Ściągawka Regex na opisie postaci
| Skrócona klasa znaku | Reprezentuje |
|---|---|
| D | Dowolna cyfra od 0 do 9 |
| D | Dowolny znak niebędący cyfrą od 0 do 9 |
| w | Dowolna litera, cyfra lub znak podkreślenia |
| W | Dowolny znak niebędący literą, cyfrą ani znakiem podkreślenia |
| S | Dowolna spacja, tabulator lub znak nowej linii |
| S | Dowolny znak, który nie jest spacją, tabulatorem ani znakiem nowej linii |