PHP preg_match()函数的用法(附带实例)
编写完正则表达式,可以使用模式匹配函数来处理指定字符串,字符串的匹配是正则表达式的主要应用之一。
在正则表达式中,使用 preg_match() 函数进行字符串查找,其语法格式如下:
如果带有可选的参数 matches,则可以把匹配的部分存在一个数组中。可选参数 flags 表示数组 matches 的长度,如果为 0,则数组将包含与整个模式匹配的文本;如果为 1,则数组将包含与第一个捕获的括号中子模式匹配的文本。
【实例】获取主机名和域名。

图 1 获取主机名和域名
在正则表达式中,使用 preg_match() 函数进行字符串查找,其语法格式如下:
(int preg_match(string pattern,string subject[,array matches[,int flags]]);preg_match() 函数的功能是,在 subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容,如果搜索到该内容则返回与 pattern 匹配的次数。由于该函数在第一次匹配成功之后便停止搜索,因此返回的值是 0 或 1。
如果带有可选的参数 matches,则可以把匹配的部分存在一个数组中。可选参数 flags 表示数组 matches 的长度,如果为 0,则数组将包含与整个模式匹配的文本;如果为 1,则数组将包含与第一个捕获的括号中子模式匹配的文本。
【实例】获取主机名和域名。
<?php // 从URL中取得主机名 $str="http://www.xxx.yyy.zzz/index.html"; preg_match("/^(http:\/\/)?([^\/]+)/i", $str, $matches); $host = $matches[2]; echo "主机名是".$host."<br>"; // 从主机名中取得后面两段“yyy.zzz” preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches); echo "域名是{$matches[0]}\n"; ?>运行结果如下图所示:

图 1 获取主机名和域名