Regex 使用正则表达式捕获电子邮件的特定用户名

Regex 使用正则表达式捕获电子邮件的特定用户名,regex,Regex,我一直在验证一个正则表达式 ? 我面临的问题是,我必须在提供的电子邮件地址中捕获特定的用户名。 下面是电子邮件列表,以及要使用正则表达式捕获的文本: 电子邮件 tom@hogwarts.com 汤姆。riddle@hogwarts.com 汤姆·里德尔+regexone@hogwarts.com tom@hogwarts.eu.com potter@hogwarts.com harry@hogwarts.com 赫敏+regexone@hogwarts.com 要在每个电子邮件地址中捕获的文本:

我一直在验证一个正则表达式

?

我面临的问题是,我必须在提供的电子邮件地址中捕获特定的用户名。 下面是电子邮件列表,以及要使用正则表达式捕获的文本:

电子邮件

  • tom@hogwarts.com

  • 汤姆。riddle@hogwarts.com

  • 汤姆·里德尔+regexone@hogwarts.com

  • tom@hogwarts.eu.com

  • potter@hogwarts.com

  • harry@hogwarts.com

  • 赫敏+regexone@hogwarts.com

  • 要在每个电子邮件地址中捕获的文本:

  • 汤姆

  • 汤姆·里德尔

  • 汤姆·里德尔

  • 汤姆

  • 陶工

  • 哈利

  • 赫敏


  • 您可以使用此正则表达式:

    ([a-z\.]+)
    
    它意味着捕获所有小写字母和一个点字符


    注意:要进行正确的电子邮件验证,需要更多的内容,但这将通过您链接的测试。

    这个简单的正则表达式捕获第一个完整的“单词字符或点”序列:

    该正则表达式的细分如下:

    • ^
      开始输入
    • [
      打开字符类
    • \w
      一个“单词字符”与
      [a-zA-Z0-9_]相同
    • 文字点(在字符类中时)
    • ]
      关闭字符类
    • +
      前面的一个或多个表达式
    注意,(大多数)字符在字符类中失去了它们的特殊意义,因此没有必要逃避圆点

    我在链接的网站上测试了它,效果很好:)

    请试试这个

    ([0-9a-zA-Z.]+)+?\S*@


    它将捕获+之前的所有符号(如果我们有),或者@symbol之前的所有符号(如果我们这里没有任何加号)。

    您不需要转义dot我知道,但我发现在char类中转义它更一致,并且更容易复制或移入或移出char类。感谢您的评论,但我还是不明白它的确切含义。你能再进一步说明一下吗,因为我对正则表达式还不熟悉。你说“逃出点”是什么意思?我已经用你的解决方案解决了这个问题,我的正则表达式是:^([\w.]+).@[a-z]+\.[a-z]{2}?.[a-z]+$我已经添加了正则表达式的解释。谢谢波希米亚人,现在我明白了。我使用了以下正则表达式:^([\w.]+)@[a-z]+\[a-z]{2}?\.?[a-z]+$但以下电子邮件未验证:tom.ridle+regexone@hogwarts.com赫敏+regexone@hogwarts.comIts已解决!:-)我使用的表达式是:^([\w.]+).@[a-z]+\.[a-z]{2}?\.[a-z]+$
    ^[\w.]+