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