Python | Wyodrębnij słowa z podanego ciągu

| | | | | | | | | | | | | | | | | | |

Metoda nr 1: Używanie split()
Za pomocą funkcji split możemy podzielić ciąg na listę słów, i jest to najczęstsze i polecana metoda, jeśli ktoś chce wykonać to konkretne zadanie. Ale wadą jest to, że nie działa w przypadkach, gdy ciąg zawiera znaki interpunkcyjne.


# Kod demonstracyjny Python3 < br> # wyodrębnij słowa z ciągu
# używając split()


# ciąg inicjujący

test_string = "Geeksforgeeks to najlepszy portal informatyczny"


# wydrukuj oryginalną linię

print ( "Oryginalny ciąg to:" + test_string)


# za pomocą split()
# wyodrębnij słowa z ciągu

r es = test_string.split ()


# wynik wydruku

print ( "Lista słów to:" + str (res) )

Wyjście:

Oryginalny ciąg to: Geeksforgeeks jest najlepszym portalem informatycznym
The lista słów to: [`Geeksforgeeks`, `jest`, `najlepsze`, `Komputer`, `Nauka`, `Portal`]

Metoda nr 2: Używanie regex (findall())
W przypadkach, które zawierają wszystkie znaki specjalne i znaki interpunkcyjne, jak omówiono powyżej, tr Tradycyjna metoda wyszukiwania słów w ciągu za pomocą dzielenia może się nie powieść i dlatego wymaga wyrażeń regularnych, aby wykonać to zadanie. Funkcja findall zwraca listę po przefiltrowaniu ciągu i wyodrębnieniu słów, ignorując znaki interpunkcyjne.


# Demonstracja Python3 kod
# wyodrębnij słowa z ciągu
# używając wyrażenia regularnego (findall())

importuj re


# string inicjujący

test_string = "Geeksforgeeks , jest najlepszy @# Portal Informatyczny.!!!"


# drukuj oryginalną linię

drukuj ( "Oryginalny ciąg to: " + test_string)


# przy użyciu wyrażenia regularnego (findall ())
# wyodrębnij słowa z ciągu

res = re.findall (r `w +` , test_string)


# wynik drukowania

print ( "Lista słów to:" + str (res))

Dane wyjściowe:

Oryginalny ciąg to: Geeksforgeeks, jest najlepszy @ # Computer Science Portal. !!!
Lista słów to: [`Geeksforgeeks`, `jest`, `najlepszy`, `Komputer `, `Nauka `,` Portal `]

Metoda nr 3: Używanie regex() + string.punctuation
W tej metodzie użyto również wyrażeń regularnych, ale funkcja Pobierz wszystkie ciągi interpunkcyjne służy do ignorowania wszystkich znaków interpunkcyjnych i uzyskania przefiltrowanego ciągu wynikowego.


# kod demonstracyjny Python3
# wyodrębnianie słów z ciągu < br> # using regex() + string.punctuation

import re

import string


# ciąg inicjujący

test_string = " Geeksforgeeks, najlepiej @# Portal Informatyczny. !!! "


# print oryginalny ciąg

print ( " Oryginalny ciąg to: " + test_string)


# przy użyciu wyrażenia regularnego () + string.punctuation
# wyodrębnij słowa z ciągu

res = re.sub ( `[` + string.punctuation + `] ` ,` `, test_string ) .split()


# wynik wydruku

print ( "Lista słów to:" + str ( res))

Wyjście:

Oryginalny ciąg znaków to: Geeksforgeeks, is best @ # Computer Science Portal. !!!
Lista słów to: [`Geeksforgeeks`, `jest`, `najlepsze`, `Komputer`, `Nauka`, `Portal`]