微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php正则表达式之preg_match()用法

利用 preg_match(),我们可以完成字符串的规则匹配。如果找到一个匹配,preg_match() 函数返回 1,否则返回 0。还有一个可选的第三参数可以让你把匹配的部分存在一个数组中。在验证数据时这个功能可以变得非常有用。

实例代码如下:

  1. <?PHP 
  2. // 模式定界符后面的 i 表示不区分大小写字母的搜索 
  3. if (preg_match (/PHP/iPHP is the web scripting language of choice.)) { 
  4. print A match was found.
  5. else { 
  6. print A match was not found.
  7. ?> 

取得当前时间

实例代码如下:

  1. <?PHP 
  2. //需要匹配的字符串。date函数返回当前时间。 现在时刻:2012-04-20 07:31 am 
  3. $content = 现在时刻:.date(Y-m-d h:i a); 
  4. //匹配日期和时间. 
  5. if (preg_match (/d{4}-d{2}-d{2} d{2}:d{2} [ap]m/$content$m)) 
  6. echo 匹配的时间是: .$m[0]. n//2012-04-20 07:31 am 
  7. //分别取得日期和时间 
  8. if (preg_match (/([d-]{10}) ([d:]{5} [ap]m)/$m)) 
  9. echo 当前日期是: .$m[1]. n//2012-04-20 
  10. echo 当前时间是: .$m[2]. n//07:31 am 
  11. ?> 

这个例子将验证出此 Email 地址为正确格式。现在让我们来看看这段正则表达式所代表的各种规则。

获取Google首页title

比如说要获取google首页的title内容代码如下:

实例代码如下:

  1. <?PHP 
  2. $str = file_get_contents('http://www.google.com'); 
  3. preg_match('/<title>(.*)</title>/'$str$arr); 
  4. echo $arr[1]; 
  5. ?> 

从网址获取域名

实例代码如下:

  1. <?PHP 
  2. preg_match(/^(http://)?([^/]+)/ihttp://www.111cn.net/index.html$matches); 
  3. $host = $matches[2]; // 从主机名中取得后面两段 
  4. preg_match(/[^./]+.[^./]+$/$host$matches); 
  5. echo domain name is: {$matches[0]}n
  6. ?> 

preg_match($pattern,$string,$matcher)其中$pattern对应的就是/^(http://)?([^/]+)/i,$string 是http://www.PHP.net/index.html,$match是匹配到的结果。

如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包

含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

$matches[0] 将包含与整个模式匹配的文本。咱们用pring_r打印出来第一个$matches:

实例代码如下:

  1. Array (  
  2.  [0] => http://www.111cn.net  
  3.  [1] => http://  
  4.  [2] => http://www.PHPfensi.com ) 

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐