Найти - Пользователи
Полная версия: поиск слова целиком в предложении
Начало » Центр помощи » поиск слова целиком в предложении
1
alesi
Доброго, необходимо в массиве из строк найти совпадение заданного слова,
проблема в том что, нужно зафиксировать точное совпадение. В примере, это слово “собак” нужно чтобы программа фиксировала одно вхождение, результат должен быть 0, 0, 0, 1, 0 а получается 1, 0, 0, 1, 1


    
sum_arr = ['собаки', 'бегут', 'по полю', 'много собак', 'это собаки']
end_arr = []
subs = 'собак'
for h in sum_arr:
        if h.find(subs) == -1:
            end_arr.append(0)
        else:
            end_arr.append(1)
print (end_arr)

JOHN_16
можно пойти двумя путями.
1) написать свою функцию которая разбирает предложение по словами и ищет в них точное совпадение с заданным словом.
2) сделать это же регулярными выражениями
alesi
Пробовал сделать с помощью “ re.search” , но не могу в переменной ограничить границы слова,
если вот прямо слово в выражение ввести , то да работает if re.search(r'\bсобак\b', h), а переменную как?
PEHDOM
alesi
работает if re.search(r'\bсобак\b', h), а переменную как?
ровно также
 if re.search(r'\b{}\b'.format(subs), h)
или так
 if re.search(r'\b'+subs+r'\b', h)
а можно без re
 if ' ' + subs + ' ' in ' ' + h + ' ':
если у вас пайтон версии 3.6 и выше то можно это же записать более красиво:
 if f' {subs} ' in f' {h} ':
alesi
PEHDOM, да спасибо, все работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB