繁体   English   中英

正则表达式以更正电子邮件地址

[英]Regular expression to correct email address

在编写一个正则表达式时,我需要帮助,我想在其中删除电子邮件地址开头和结尾的多余字符。 例如:

z>user1@hotmail.com<kt
z>user2@hotmail.pk<kt
z>puser3@yahoo.com<kt
z>npuser4@yaoo.uk<kt

应用正则表达式后,我的电子邮件应如下所示:

user1@hotmail.com
user2@hotmail.pk
puser3@yahoo.com
npuser4@yaoo.uk

如果电子邮件地址已经正确,则不应应用正则表达式。

您可以尝试删除的匹配项

^[^>]*>|<[^>]*$

演示


正则表达式可视化

Debuggex演示

找到^[^>]*>([^<]*)<*.*$并将其替换为\\1

这是regex101上的示例

尝试对不需要的字符之间的任何内容使用捕获组。 例如,

/>([\w|\d]+@[\w\d]+.\w+)</

基本上,将()中的regexp匹配的任何部分保存在捕获组中。 这个匹配所有> here <里面的东西,以一串字符或数字开头,有一个@,有一个或多个单词或数字字符,然后是句点,然后是一些单词字符。 应该与任何有效的电子邮件地址匹配。

如果您需要除> <之外的其他字符进行匹配,请创建一个字符类 那就是那些方括号中的位。 如果将>替换为[.,></?;:'"]它将匹配所有这些字符。

演示 (查看比赛组)

我认为您可能会略微忽略正则表达式的要点。 正则表达式定义字符串的“形状”,并返回字符串是否符合该形状。 电子邮件地址的简单表达可能类似于:[az] [AZ] [0-9] *。?[az] [AZ] [0-9] + @ [az] [AZ] [0-9] *。[az] +

但是为电子邮件地址编写一个包含所有内容的正则表达式并不简单。 确实,要正确检查它,您需要做的是:

  1. 确保只有一个“ @”符号。

  2. 检查at符号前的部分是否符合该部分的正则表达式:

    • 性格
    • 位数
    • 扩展字符:.-'_(该列表可能不完整)
  3. 检查@符号后的部分是否符合域名的reg-ex:
    • 性格
    • 位数
    • 扩展字符:。 --
    • 必须以字符或数字开头,并且必须以正确的域名结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM