Как написать регулярку для поиска в тексте определенных смайликов?

Нужно написать регулярку для поиска в тексте следующих смайликов: [':)', ':-)', ':(', ':-(', ':o', ':-o']. Регулярку я написала, но она захватывает и другие смайлы вроде :D. Помогите этого избежать.

Код:

import re

smileys = [':)', ':-)', ':(', ':-(', ':o', ':-o']
template = '(:-?.|o|[()])'
for s in smileys:
    print(re.match(template, s))

Ответы (1 шт):

Автор решения: splash58

можно воспользоваться таким выражением

(:-?[o()])

двоеточие, возможный дефис, один из символов o()

→ Ссылка