preg_match 的用法

本文通过一个实例详细解析了PHP中的preg_match函数的工作原理,重点介绍了如何利用正则表达式匹配URL,并提取出相应的子串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

PHP    2009-07-17 12:43   阅读915   评论1  
字号:    

摘自:http://blog.youkuaiyun.com/freedarkeyes/archive/2006/10/20/1343003.aspx

大家一看到preg_match肯定会头痛的。。。其实没什么,下面我就尽力给还不明白的兄弟们争取讲明白了:

在这里我就不解释preg_match的说明了,朋友们可以通过php手册查看..先来个简单点的:

preg_match("/^(http:\/\/)?([^\/]+)/i",

"http://www.php.net/index.html", $matches);

$host = $matches[2];

// 从主机名中取得后面两段

preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);

echo "domain name is: {$matches[0]}\n";

这是手册里的例子。多数人对preg_match犯晕都出在正则上,以后我也会介绍正则。先看这个例子,

preg_match($pattern,$string,$matcher)其中$pattern对应的就是”/^(http:\/\/)?([^\/]+)/i

$str 是http://www.php.net/index.html.$match是匹配到的结果。按照手册上的意思:

如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

这是什么意思呢?第一句就不用解释了,$matches[0] 将包含与整个模式匹配的文本。

咱们用pring_r打印出来第一个$matches:

Array ( [0] => http://www.php.net [1] => http:// [2] => www.php.net )

这回明白了吧。。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本。在正则中,()代表模式:匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。就是说数组中下标为1的值就是正则中/^(http:\/\/)?([^\/]+)/i第一个()里的值!数组下标2的值以此类推

很抱歉,因为您在网易相册发布了违规信息,账号被屏蔽。被屏蔽期间他人无法访问您的相册。
帮助中心,了解如何重新恢复服务。
  单日志页面显示设置

转载于:https://www.cnblogs.com/vicenteforever/articles/1623137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值