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`]