Позитивный взгляд был бы одним из способов сделать это:
input = "@someword :someotherword #anotherword $word1 #word2 $word3"
result = re.match(r'.*((?<=\s)|(?<=^))[@#$:]\S+.*(\s[@#$:]\S+.*){4}', input)
if result:
print("Found a match")
Этот вопрос сложный, потому что вы хотите сопоставить слова со специальным символом [@#$:]
.Но мы не можем просто использовать границы слов \b
, потому что специальные символы не являются символами слов.Таким образом, вместо этого мы можем проверить, что перед началом целевого термина есть пробел, или самое начало строки.