Способ № 1: использование split()
Используя функцию разделения, мы можем разделить строку на список слов, и это наиболее распространенный и рекомендуемый метод, если кто-то хочет выполнить эту конкретную задачу. Но недостатком является то, что он не работает в случаях, когда строка содержит знаки препинания.
# Демонстрационный код Python3
< br> # извлечь слова из строки
# используя split()
# строка инициализации
test_string
=
"Geeksforgeeks — лучший портал компьютерных наук"
# напечатать исходную строку
print
(
"Исходная строка:"
+
test_string)
# с помощью split()
# извлечь слова из строки
r es
=
test_string.split ()
# результат печати
print
(
"Список слов:"
+
str
(res) )
Выход:
Исходная строка: Geeksforgeeks is best Computer Science Portal
The список слов: [`Geeksforgeeks`,` is`, `best`, `Computer`, `Science`, `Portal`]
Способ № 2: Использование regex (findall())
В случаях, содержащих все специальные символы и знаки препинания, как обсуждалось выше, tr Традиционный метод поиска слов в строке с использованием разбиения может дать сбой и поэтому для выполнения этой задачи требуются регулярные выражения. Функция findall
возвращает список после фильтрации строки и извлечения слов, игнорируя знаки препинания.
# Python3 demo code
# извлечь слова из строки
# используя регулярное выражение (findall())
import
re
# инициализация строки
test_string
=
"Geeksforgeeks , лучше @ # Computer Science Portal. !!!"
# напечатать исходную строку
напечатать
(
"Исходная строка: "
+
test_string)
# использование регулярного выражения (findall())
# извлечь слова из строки
res
=
re.findall (r
`w +`
, test_string)
# результат печати
print
(
"Список слов:"
+
str
(res))
Вывод:
Исходная строка: Geeksforgeeks, is best @ # Computer Science Portal. !!!
Список слов: [`Geeksforgeeks`, `есть`, `лучший`, `компьютер`, `наука`, `портал`]
Метод № 3: использование регулярного выражения () + string.punctuation
Этот метод также использует регулярные выражения, но функция получения всех строк пунктуации используется для игнорирования всех знаков препинания и получения отфильтрованной строки результата.
p>
# демонстрационный код Python3
# извлечь слова из строки
< br> # с использованием регулярного выражения () + string.punctuation
import
re
import
строка
# строка инициализации
test_string
=
" Geeksforgeeks, это лучший @ # Computer Science Portal. !!! "
# напечатать исходную строку
напечатать
(
" Исходная строка: "
+
test_string)
# с использованием регулярного выражения () + string.punctuation
# извлечь слова из строки
res
=
re.sub (
`[`
+
string.punctuation
+
`] `
,` `, test_string ) .split ()
# результат печати
печать
(
"Список слов такой:"
+
str
( res))
Выход:
Исходная строка: Geeksforgeeks, is best @ # Computer Science Portal. !!!
Список слов: [`Geeksforgeeks`, `есть`, `лучший`, `Компьютер`, `Наука`, `Портал`]