Вы говорите: "" "Если я сделаю p = re.search('[/@.* /]', str)
Я получу любые слова, которые начинаются с @ и заканчиваются пробелом." "Но это неверно - этот шаблон является классом символов, который будет соответствовать ОДИН символ в наборе @/.*
и пробел. Примечание: в шаблоне есть лишняя секунда /
.
Например:
>>> re.findall('[/@.* /]', 'xxx@foo x/x.x*x xxxx')
['@', ' ', '/', '.', '*', ' ']
>>>
Вы говорите, что хотите, чтобы "guy"
вернулось из "Hi there @guy"
, но это противоречит "и заканчивается пробелом".
Пожалуйста, измените ваш вопрос, чтобы включить то, что вы действительно хотите / должны соответствовать.