标签:
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参数,表示从原串哪个位置开始执行匹配。
标签:
原文地址:http://www.cnblogs.com/liseamas/p/4378680.html