Regex给出了错误的结果

Regex给出了错误的结果,regex,Regex,我有一个正则表达式: >[^\>\s@]*@[^@\s]*\.[a-zA-Z]*< 及 >@abc@bef.co< 那是无效的 对于这些字符串 >@abc@def.zx< >@abc.zx< >@abc.zx< >@abc@def.zx< >@abc.zx< >@abc.zx< 第一个不匹配,但后两个匹配,尽管第一个符号是@。为什么?我怎么修理它 我使用[^\>\s@]*中的*进行测试意味着该部分重复0次或更多次,因此可以让字符集重复

我有一个正则表达式:

>[^\>\s@]*@[^@\s]*\.[a-zA-Z]*<

>@abc@bef.co<
那是无效的

对于这些字符串

>@abc@def.zx<
>@abc.zx<
>@abc.zx<
>@abc@def.zx<
>@abc.zx<
>@abc.zx<
第一个不匹配,但后两个匹配,尽管第一个符号是
@
。为什么?我怎么修理它


我使用
[^\>\s@]*
中的
*
进行测试意味着该部分重复0次或更多次,因此可以让字符集重复0次,然后是
@
。如果要确保它不以
@
开头,请将负号字符集与
+
匹配一次或多次,以便在
@
之间必然会出现某些内容。您也不需要转义

>[^>\s@]+@[^@\s]*\.[a-zA-Z]*<
[^>\s@]+@[^@\s]*\.[a-zA-Z]*<

>@abc@def.zx<
>@abc.zx<
>@abc.zx<
>[^>\s@]+@[^@\s]*\.[a-zA-Z]*<