【问题标题】:Php regex extract email from HTML [duplicate]PHP正则表达式从HTML中提取电子邮件[重复]
【发布时间】:2018-01-19 12:17:35
【问题描述】:

我需要一个正则表达式来匹配网页中的模式。 我想提取所有姓名和电子邮件地址。 文本位于 HTML 表格中,例如:

Name <email@test.com>

更新

Name 1 <email1@test.com>
Name 2 <email2@test.com>
Name 3 <email1@test.com>

像这样。

谢谢, 乌代

【问题讨论】:

  • HTML 表格像..?
  • @Aydin 他缺少空格,所以删除了 html
  • 所以您所有的电子邮件都是一封电子邮件?您需要扩展您的表格,以便我们可以看到模式并包括您的预期输出。因为我在这里看不到真正的问题。
  • 首先,您需要展示您已经尝试过的内容。
  • 我试过了![a-z0-9_\-\+\]{3})!i但它没有按我想要的方式工作。

标签: php regex


【解决方案1】:

如果没有明确的电子邮件模式,您可以使用以下内容:

[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-z]{2,3}(\.[a-z]{2})?

或者在代码中

$re = '/[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-z]{2,3}(\.[a-z]{2})?/';
$str = '';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);

其中 $str 是要解析的 HTML。

【讨论】:

  • 通过这个我收到了电子邮件,但我还需要没有从这个模式中提取的名称。
  • 请粘贴实际结构,或者您尝试解析的实际 HTML 的片段,这样会更容易找到模式并调整正则表达式。
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2011-01-16
  • 2010-11-18
  • 2020-04-09
  • 2017-07-13
  • 2017-09-25
  • 1970-01-01
相关资源
最近更新 更多