擅长:python、mysql、java
<p>当你可以去“yo regex,给我所有匹配项”时,为什么要尝试分开呢</p>
<pre><code>test = "test @aa test2 @bb @cc t-es @dd-@ee, test@again"
import re
print(
re.findall("[^\s@]*?@?[^@]* |[^@]*@[^\s@]*", test)
)
# ['test ', '@aa test2 ', '@bb ', '@cc t-es ', '@dd-', '@ee, ', 'test@again']
</code></pre>
<p>我试过了,但是我不能让正则表达式变小,但至少它是有效的,而且谁会期望正则表达式变小呢</p>
<hr/>
<p>根据OP的新要求(或修正要求)</p>
<pre><code>[^\s@]*?@?[^\s@]* |[^@]*@[^\s@]*
</code></pre>