Python | Извлечение слов из заданной строки

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

Способ № 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`, `есть`, `лучший`, `Компьютер`, `Наука`, `Портал`]