码迷,mamicode.com
首页 > Web开发 > 详细

php preg_match方法

时间:2015-03-30 18:32:11      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

preg_match方法利用正则表达式,处理一个字符串,将所得结果保存在array对象中,array[0]保存匹配整个正测表达式的串;array[1]保存第一个由小括号括起来的字串,后面依次类推。

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

如下代码:

<?php
$pattern = "/abc (li|wang).../";
$arr = array();
$ret = preg_match($pattern, "xx abc li find......", $arr);
echo "ret=$ret\n";
var_dump($arr);

运行得到结果如下:

ret=1
array(2) {
  [0] =>
  string(9) "abc li fi"
  [1] =>
  string(2) "li"
}

如上,我们得到了match整个表达式的"abc li fi"和括号里"li";如果我们还想得到每一个match的对象在原串中的位置,则可以使用PREG_OFFSET_CAPTURE.

<?php
$pattern = "/abc (li|wang).../";
$arr = array();
$ret = preg_match($pattern, "xx abc li find......", $arr, PREG_OFFSET_CAPTURE);
echo "ret=$ret\n";
var_dump($arr);

运行,得到

ret=1
array(2) {
  [0] =>
  array(2) {
    [0] =>
    string(9) "abc li fi"
    [1] =>
    int(3)
  }
  [1] =>
  array(2) {
    [0] =>
    string(2) "li"
    [1] =>
    int(7)
  }
}

这样,array[i]下的元素变成了array对象,包含2个元素,第二个就是该pattern在原串中的位置。

当然preg_match还可以传offset参数,表示从原串哪个位置开始执行匹配。

php preg_match方法

标签:

原文地址:http://www.cnblogs.com/liseamas/p/4378680.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!