PHP正则匹配邮件地址、URL

匹配邮件

#^[A-Za-z0-9]+[\w\.-]*@[A-Za-z0-9]+[A-Za-z0-9\.-]*[A-Za-z0-9]$#

注意

1. \w 表示的是 [A-Za-z0-9_] 包括下划线

2. 邮件@后的域名不能含有下划线 _ 但是可以有-

<?php
$email = 'sailrancho@qq_mail.com';

function isEmail($email) {
     $preg = '#^[A-Za-z0-9]+[A-Za-z0-9\.-_]*@[A-Za-z0-9]+[A-Za-z0-9\.-]*[A-Za-z0-9]$#';
    return preg_match($preg, $email);
}

var_dump(isEmail($email));

匹配url

<?php
$preg = '#(http://|https://)[\w]+\.[0-9a-zA-Z]+[\w\.]+#';
$content = 'asdfsdfsdfsdfasdhttp://www.baidu.com';
print preg_match($preg,$content,$match_arr);
print_r($match_arr);

匹配url中的后缀名

<?php
$url = "http://www.baidu.com/index.php?a=sadfasdf";
$preg = '#\.([a-zA-z0-9]+)\?#';
preg_match($preg, $url, $match_arr);
print_r($match_arr);