当前位置: 首页 > 面试题库 >

正则表达式从字符串中查找电子邮件地址

许彦
2023-03-14
问题内容

我的意图是从网页获取电子邮件地址。我有页面来源。我正在逐行阅读页面源代码。现在,我想从我正在阅读的当前行中获取电子邮件地址。当前行可能有也可能没有电子邮件。我看到了很多正则表达式示例。但是它们大多数用于验证电子邮件地址。我想从页面来源获取电子邮件地址,但不进行验证。它应该在http://emailx.discoveryvip.com/正常工作

一些示例输入行是:

1)<p>Send details to <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;%72%65%62%65%6b%61%68@%68%61%63%6b%73%75%72%66%65%72.%63%6f%6d">neeraj@yopmail.com</a></p>

2)<p>Interested should send details directly to <a href="http://www.abcdef.com/abcdef/">www.abcdef.com/abcdef/</a>. Should you have any questions, please email <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;%6a%6f%62%73@%72%65%6c%61%79.%65%64%75">neeraj@yopmail.com</a>.

3)Note :- Send your queries at  neeraj@yopmail.com  for more details call Mr. neeraj 012345678901.

我想从示例1,2和3获得neeraj@yopmail.com。我使用的是Java,但是rexexp不好。帮我。


问题答案:

您可以使用RFC 2822来验证电子邮件地址格式:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

这是来自regular-expressions.info的解释:

此正则表达式包含两部分:@之前的部分和@之后的部分。@之前的部分有两种选择:它可以由一系列字母,数字和某些符号(包括一个或多个点)组成。但是,点可能不会连续出现或出现在电子邮件地址的开头或结尾。另一种选择是将@之前的部分用双引号引起来,从而允许在引号之间使用任何ASCII字符串。空格字符,双引号和反斜杠必须使用反斜杠转义。

您可以在此处查看:表格示例。



 类似资料:
  • 问题内容: 有人可以向我解释这个Java Regex吗? 此正则表达式用于验证 电子邮件地址 。 问题答案: 如今,验证电子邮件地址被认为是一种不好的做法(停止使用regex验证电子邮件地址),尤其是使用问题中的表达式时。例如,这是一个更完整的表达式。 至于此表达式,我们将其分为几部分: 匹配字符串的开头 匹配列表中的至少一个字符 非捕获(请参阅backreference)组,可以重复0..n次,

  • 问题内容: 首先,我知道不建议使用正则表达式发送电子邮件,但我必须对此进行测试。 我有这个正则表达式: 在Java中,我这样做: 但是,无论电子邮件是否格式正确,正则表达式都会失败。Eclipse内部的“查找并替换”功能可以在同一个正则表达式下正常运行。 任何想法? 问题答案: FWIW,这是我们用来验证电子邮件地址的Java代码。正则表达式非常相似: 工作相当可靠。

  • 我需要一个带有特殊字符的正则表达式电子邮件验证。 规则: 本地部分可能有2个或更多字符长度 本地部分包含特殊字符 当前正则表达式: 测试模式: 我需要一个正则表达式,它将验证为:

  • 问题内容: 我正在尝试编写一个正则表达式来屏蔽电子邮件地址。下面的例子。 输入:john.doe@example.en.com 输出:j*******@e*********.com 我已经尝试了以下方法,但似乎无法正常工作。 正则表达式: 输出:j * @ example.en.com 正则表达式: 输出:j ******。com 任何帮助,将不胜感激。 演示 问题答案: ⇒(当前问题)- (请参

  • 问题内容: 我想要一个正则表达式,它将从String中提取电子邮件地址(使用Java正则表达式)。 那确实有效。 问题答案: 这是真正有效的正则表达式。我花了一个小时在网上冲浪并测试了不同的方法,尽管Google在这些页面上排名最高,但大多数方法都无效。 我想与您分享一个有效的正则表达式: 这是原始链接:http : //www.mkyong.com/regular-expressions/how

  • 本文向大家介绍在Python中使用正则表达式提取电子邮件地址,包括了在Python中使用正则表达式提取电子邮件地址的使用技巧和注意事项,需要的朋友参考一下 电子邮件地址非常复杂,并且没有在世界范围内遵循的标准,这使得很难在正则表达式中识别电子邮件。RFC 5322指定电子邮件地址的格式。我们将使用这种格式从文本中提取电子邮件地址。 例如,对于给定的输入字符串- 我们应该得到输出- 我们可以使用以下