我有这个正则表达式:
>[^\>\s@]*@[^@\s]*\.[a-zA-Z]*<@不能是第一个符号;字符串应以>和<开头和结尾。字符串还可以在中间的@之前有任何非空格、非>和非@字符,然后是任何非空格和非@字符,后面是一个点和任意数量的字母。
也就是说,有效字符串应该是
>abc@bef.co<和
>@abc@bef.co<不会是有效的
对于这些字符串
>@abc@def.zx<
>@abc.zx<
>@abc.zx<第一个不匹配,但后两个匹配,尽管将@作为第一个符号。为什么?我该如何修复它?
我使用https://www.regextester.com/进行了测试
发布于 2020-10-22 10:52:51
[^\>\s@]*中的*表示该部分重复0次或更多次,因此您可以让字符集重复0次,然后是@。如果您希望确保它不是以>@开头,请将负字符集与+匹配一次或多次,这样>和@之间就必然会有一些东西。您也不需要转义>
>[^>\s@]+@[^@\s]*\.[a-zA-Z]*<https://stackoverflow.com/questions/64474513
复制相似问题