php - 如何检查字符串是否包含电子邮件?

标签 php regex

<分区>

我有这段代码可以检查电子邮件是否有效:

$email = "abc123@sdsd.com"; 
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
if (preg_match($regex, $email)) {
 echo $email . " is a valid email. We can accept it.";
} else { 
 echo $email . " is an invalid email. Please try again.";
}

假设我有下面的字符串:

<html>
<body>
<p>abc123@sdsd.com</p>
</body>
</html>

我如何检查该字符串是否包含电子邮件? (因为它不适用于上面的代码)

最佳答案

^$ 是 anchor ,需要全字符串匹配。如果您取消它,它将匹配字符串中某处的电子邮件。

正则表达式演示:https://regex101.com/r/xI0bC2/1

PHP 使用(更新以存储找到的电子邮件):

<?php
$email = "<html>
<body>
<p>abc123@sdsd.com</p>
</body>
</html>"; 
$regex = '/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})/'; 
if (preg_match($regex, $email, $email_is)) {
 echo $email_is[0] . " is a valid email. We can accept it.";
} else { 
 echo $email . " is an invalid email. Please try again.";
}

PHP 演示:https://eval.in/618679

关于php - 如何检查字符串是否包含电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38798199/

相关文章:

php - 如何避免创建重复行?

php - Angular 4 使用 PHP POST 到 MYSQL 数据库

php - 出色地处理从代码中不同位置浮出的非对象错误的属性

正则表达式匹配未知的字母数字字符数

java - 排除字符串部分时的正则表达式反向引用

javascript - 用于选择并替换为标题大小写值的正则表达式

java - 正则表达式从字符串中获取数字的第一个实例

php - 当它的值类似于 1 :00 PM? 时,如何在 Mysql 数据库 sql 中获取大于或等于的值

javascript - 使用 Ajax 每 X 秒运行一个 php 脚本

php - 解析 youtube 链接 PHP