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

时间:2013-03-05 07:01:53

标签: regex

我在

验证正则表达式时遇到困难

http://regexone.com/example/2

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

电子邮件

  1. tom@hogwarts.com

  2. tom.riddle@hogwarts.com

  3. tom.riddle+regexone@hogwarts.com

  4. tom@hogwarts.eu.com

  5. potter@hogwarts.com

  6. harry@hogwarts.com

  7. hermione+regexone@hogwarts.com

  8. 要在每个电子邮件地址中捕获的文字:

    1. 汤姆

    2. tom.riddle

    3. tom.riddle

    4. 汤姆

    5. 陶工

    6. 哈里

    7. hermoine

3 个答案:

答案 0 :(得分:1)

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

^[\w.]+

这个正则表达式的细分是:

  • ^输入开始
  • [打开一个角色类
  • \w“word char”与[a-zA-Z0-9_]
  • 相同
  • .一个文字点(在字符类中)
  • ]关闭字符类
  • +前面一个或多个表达式

请注意,(大多数)字符在字符类中失去了特殊含义,因此无需转义点。

我在链接网站上测试了它,这有效:)

答案 1 :(得分:0)

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

([a-z\.]+)

表示捕获所有小写字母和点字符。

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

答案 2 :(得分:0)

请试试这个

([0-9A-ZA-Z ._] +)+?\ S * @

如果我们拥有它,它将在+之前捕获所有符号,如果我们这里没有任何加号,它将捕获@符号之前。