首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式给出错误的结果

正则表达式给出错误的结果
EN

Stack Overflow用户
提问于 2020-10-22 10:47:48
回答 1查看 21关注 0票数 1

我有这个正则表达式:

代码语言:javascript
复制
>[^\>\s@]*@[^@\s]*\.[a-zA-Z]*<

@不能是第一个符号;字符串应以><开头和结尾。字符串还可以在中间的@之前有任何非空格、非>和非@字符,然后是任何非空格和非@字符,后面是一个点和任意数量的字母。

也就是说,有效字符串应该是

代码语言:javascript
复制
>abc@bef.co<

代码语言:javascript
复制
>@abc@bef.co<

不会是有效的

对于这些字符串

代码语言:javascript
复制
>@abc@def.zx<
>@abc.zx<
>@abc.zx<

第一个不匹配,但后两个匹配,尽管将@作为第一个符号。为什么?我该如何修复它?

我使用https://www.regextester.com/进行了测试

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 10:52:51

[^\>\s@]*中的*表示该部分重复0次或更多次,因此您可以让字符集重复0次,然后是@。如果您希望确保它不是以>@开头,请将负字符集与+匹配一次或多次,这样>@之间就必然会有一些东西。您也不需要转义>

代码语言:javascript
复制
>[^>\s@]+@[^@\s]*\.[a-zA-Z]*<

https://regex101.com/r/LlU0Pc/1

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64474513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档