排除数字 emailid 的正则表达式
Regular Expression to exclude numerical emailids
我有以下一组示例电子邮件 ID
EmailAddress
1123
123.123
123_123
123@123.123
123@123.com
123@abc.com
123mbc@abc.com
123mbc@123abc.com
123mbc@123abc.123com
123mbc123@cc123abc.c123com
如果 mailid 在@
之前完全包含数字,则需要删除它们
Expected output:
123mbc@abc.com
123mbc@123abc.com
123mbc@123abc.123com
123mbc123@cc123abc.c123com
下面我用的是Java Rex。但它消除了一切。我有写这些表达式的基础知识。请帮我改正下面的一个。提前致谢。
[^0-9]*@.*
试试这个:
[^\d\s].*@.+
它将匹配在 @
符号前至少有一个字母或符号的电子邮件。
以下正则表达式只允许满足您的规范的电子邮件地址通过:
(?m)^.*[^0-9@\r\n].*@
观察到你必须指定多行匹配(m
标志。见现场演示。该解决方案采用嵌入标志语法m
标志。你也可以调用Pattern.compile
与 Pattern.MULTILINE
参数。 ).
在 regex101 现场演示。
说明
策略:将基本合理的电子邮件地址定义为包含 @
的单行字符串,严格排除数字前缀。
^
:行首锚点
@
:基本合理的电子邮件地址必须与 at 符号匹配
[^...]
:at符号前的一个字符不能是数字,也不能是CR/LF。 @
也包括在内,测试的非数字字符不能是第一个 at-sign !
.*
:在非数字测试前后,允许任意字符串(好吧,实际上它们不是,但是真正的语法验证电子邮件地址可能不应该出现在这里,并且出于可靠性和代码可维护性的原因,绝对不应该基于正则表达式)。字符串需要在模式中表示,因为模式是锚定的。
你的意思是这样的吗? (.*[a-zA-Z].*[@]\w*\.\w*)
breakdown
.*
= 0 or more characters
[a-zA-Z]
= one
letter
.*
= 0 or more characters
@
\w*\.\w*
endless times a-zA-Z0-9 with a single . in between
这样你就有了至少包含一个字母的邮件
在 https://regex101.com/r/qV1bU4/3
查看测试
根据 ccf 的建议进行了编辑并更新了细分
我有以下一组示例电子邮件 ID
EmailAddress
1123
123.123
123_123
123@123.123
123@123.com
123@abc.com
123mbc@abc.com
123mbc@123abc.com
123mbc@123abc.123com
123mbc123@cc123abc.c123com
如果 mailid 在@
之前完全包含数字,则需要删除它们Expected output:
123mbc@abc.com
123mbc@123abc.com
123mbc@123abc.123com
123mbc123@cc123abc.c123com
下面我用的是Java Rex。但它消除了一切。我有写这些表达式的基础知识。请帮我改正下面的一个。提前致谢。
[^0-9]*@.*
试试这个:
[^\d\s].*@.+
它将匹配在 @
符号前至少有一个字母或符号的电子邮件。
以下正则表达式只允许满足您的规范的电子邮件地址通过:
(?m)^.*[^0-9@\r\n].*@
观察到你必须指定多行匹配(m
标志。见现场演示。该解决方案采用嵌入标志语法m
标志。你也可以调用Pattern.compile
与 Pattern.MULTILINE
参数。 ).
在 regex101 现场演示。
说明
策略:将基本合理的电子邮件地址定义为包含 @
的单行字符串,严格排除数字前缀。
^
:行首锚点@
:基本合理的电子邮件地址必须与 at 符号匹配[^...]
:at符号前的一个字符不能是数字,也不能是CR/LF。@
也包括在内,测试的非数字字符不能是第一个 at-sign !.*
:在非数字测试前后,允许任意字符串(好吧,实际上它们不是,但是真正的语法验证电子邮件地址可能不应该出现在这里,并且出于可靠性和代码可维护性的原因,绝对不应该基于正则表达式)。字符串需要在模式中表示,因为模式是锚定的。
你的意思是这样的吗? (.*[a-zA-Z].*[@]\w*\.\w*)
breakdown
.*
= 0 or more characters
[a-zA-Z]
= one letter
.*
= 0 or more characters
@
\w*\.\w*
endless times a-zA-Z0-9 with a single . in between
这样你就有了至少包含一个字母的邮件
在 https://regex101.com/r/qV1bU4/3
根据 ccf 的建议进行了编辑并更新了细分