Это можно сделать одним из двух способов.
Во-первых, общий знаменатель:
texts = soup.find_all(text=True)
cleaned = ["".join(t.strip()) for t in texts]
counter=0
Теперь, если вы хотите использовать регулярное выражение:
import re
regex = re.compile(r'\bIndia is a\b')
for c in cleaned:
if regex.match(c) is not None:
counter+=1
Мне лично не нравится использовать регулярное выражение, кроме в крайнем случае, поэтому я бы сделал go более длинный путь
phrase = 'India is a'
for c in cleaned:
if phrase==c or phrase+' ' in c:
counter+=1
В обоих случаях print(counter)
выдает 6
.
Обратите внимание, что они намеренно не учитывают 3 ситуации, когда фраза является частью более крупной фразы (например, India is also
); учитывается только точная фраза или фраза, за которой следует пробел.